在laravel 5.1中将对象转换为数组
Posted
技术标签:
【中文标题】在laravel 5.1中将对象转换为数组【英文标题】:Convert object into array in laravel 5.1 【发布时间】:2016-03-14 23:23:30 【问题描述】:我有这段代码可以正常工作
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();
所以在上面的函数中我把这一行改为
EmailController::sendemail($ticketdata->email,$ticketdata);
但执行此代码后,我收到此错误
我知道这个错误是因为我没有将数组传递给这个函数,但我无法纠正这个代码。 我也尝试将对象类型转换为数组,但这在这里不起作用。
【问题讨论】:
【参考方案1】:因为$ticketdata
是Illuminate\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
【讨论】:
【参考方案2】: $status = \Mail::send('emails.templete_name', ['ticketdata' => $ticketdata, 'somethingelse'=> 'somethingelse'], function($message) use ($ticketdata)
$message->to($ticketdata->email, 'text')->subject('text');
);
【讨论】:
这不能回答问题。发送电子邮件的代码在EmailController::sendemail()
后面。该方法的参数列表要求第二个参数为数组类型。 OP 要求一种将他的模型转换为数组的方法。
电子邮件中显示的错误,如果错误是在调用 Mail:send 而不是 EmailController::sendmail() 。很可能他在 sendmail() 中使用它【参考方案3】:
试试这个把你的数据放在数组中:
$ticketdata=Ticket::with('eventdetail')->where('transactionid',$transactionid)->first()->toArray();
【讨论】:
以上是关于在laravel 5.1中将对象转换为数组的主要内容,如果未能解决你的问题,请参考以下文章