我尝试使用数据库中的文本列中的unserialize对象从刀片视图导出excel文件,但是我收到错误。
错误:
调用未定义的方法Illuminate \ Database \ Query \ Builder :: transform()
这是我的控制器:
public function ExportExcel($id)
{
$order = Order::find($id);
$order->transform(function ($order , $key){
$order->cart = unserialize($order->cart);
return $order;
});
Excel::create('facture', function($excel) use ($order) {
$excel->sheet('Excel', function($sheet) use ($order) {
$sheet->loadView('cotisation_structure.factureExcelsingle')->with(['order' => $order]);
});
})->export('xls');
}
这是我的刀片视图:
<html> <body>
<thead>
<tr>
<th>N° Facture</th>
<th>N° licence</th>
<th>Nom</th>
<th>Prénom</th>
<th>Type d'activité</th>
<th>Saison</th>
<th>Mode de paiement</th>
<th>Montant</th>
<th>Date Achat</th>
</tr>
</thead>
<tr>
<td>{{$order->num_facture}}</td>
<td>{{$order['item']->num_licence}}</td>
<td>{{$order['item']->lb_nom}}</td>
<td>{{$order['item']->lb_prenom}}</td>
<td>{{$order['item']->activite_licencie->lb_activite}}</td>
<td>{{$order['item']->saison->lb_saison}}</td>
<td>{{$order->payment_method}}</td>
<td>{{$order['price']}}</td>
<td>{{$order->date_achat}}</td>
</tr>
似乎Transform方法不适用于对象,仅适用于集合。
有人有想法解决这个问题吗?谢谢我提前
答案 0 :(得分:1)
Eloquent find方法返回单个模型实例而不是返回模型集合。
因此,转换方法仅适用于集合而非单个模型实例。
试试这个
public function ExportExcel($id)
{
$order = Order::find($id);
$order->cart = unserialize($order->cart);
Excel::create('facture', function($excel) use ($order) {
$excel->sheet('Excel', function($sheet) use ($order) {
$sheet->loadView('cotisation_structure.factureExcelsingle')->with(['order' => $order]);
});
})->export('xls');
}
注意:转换函数不在单个对象上处理集合。