在laravel 5.1中将对象转换为数组

dol*_*lar 4 php mysql arrays laravel laravel-5

我有这个代码工作正常

 public function success(Request $request)
 {
    $paymentstatus=$request->input('status');
    $transactionid=$request->input('txnid');
    Ticket::where('transactionid',$transactionid)->update(['paymentstatus'=>$paymentstatus]);
    $ticketdata=Ticket::with('eventdetail')->where('transactionid',$transactionid)->first();

    $venuename=$ticketdata->eventdetail->venuename;
    $eventname=$ticketdata->eventdetail->eventname;
    $eventdate=Carbon::parse($ticketdata->eventdetail->eventdate)->format('d M Y');


 $myticketdata=array('ticketid'=>'200','class'=>'gold','no_of_persons'=>'10','fullname'=>'tommy dollar','email'=>'xya@gmail.com','mobile'=>'9874563210','transactionid'=>'alskdjflaskjdflakjd');

   EmailController::sendemail($ticketdata->email,$myticketdata);

    return "success";
}
Run Code Online (Sandbox Code Playgroud)

但我想发送使用下面给定的行获取的数组

$ticketdata=Ticket::with('eventdetail')->where('transactionid',$transactionid)->first();
Run Code Online (Sandbox Code Playgroud)

所以在上面的函数我改变了这一行

EmailController::sendemail($ticketdata->email,$ticketdata);
Run Code Online (Sandbox Code Playgroud)

但执行此代码后,我收到此错误 在此输入图像描述

我知道这个错误是因为我没有将数组传递给此函数,但我无法纠正此代码.我也尝试将对象强制转换为数组,但这在这里没有用.

tom*_*mmy 6

因为$ticketdata是一个实例Illuminate\Database\Eloquent\Model,您可以使用该toArray()方法将其转换为数组:

$ticketdata = Ticket::with('eventdetail')
    ->where('transactionid', $transactionid)
    ->first()
    ->toArray();
Run Code Online (Sandbox Code Playgroud)

http://laravel.com/api/5.1/Illuminate/Database/Eloquent/Model.html#method_toArray