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

时间:2015-12-09 15:46:00

标签: php mysql arrays laravel laravel-5

我有这个代码可以正常工作

Rprof(); <your_code>; Rprof(NULL); summaryRprof()

但我想发送使用下面给定的行

获取的数组
 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";
}

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

$ticketdata=Ticket::with('eventdetail')->where('transactionid',$transactionid)->first();

但执行此代码后,我收到此错误 enter image description here

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

3 个答案:

答案 0 :(得分:6)

由于$ticketdataIlluminate\Database\Eloquent\Model的实例,因此您可以使用toArray()方法将其转换为数组:

$ticketdata = Ticket::with('eventdetail')
    ->where('transactionid', $transactionid)
    ->first()
    ->toArray();

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

答案 1 :(得分:0)

 $status = \Mail::send('emails.templete_name', ['ticketdata' => $ticketdata, 'somethingelse'=> 'somethingelse'], function($message) use ($ticketdata)
            {
                $message->to($ticketdata->email, 'text')->subject('text');
            });

答案 2 :(得分:0)

尝试将数据放入数组:

$ticketdata=Ticket::with('eventdetail')->where('transactionid',$transactionid)->first()->toArray();