如何在 laravel 上编辑列?
Posted
技术标签:
【中文标题】如何在 laravel 上编辑列?【英文标题】:how to edit column on laravel? 【发布时间】:2016-02-14 00:09:05 【问题描述】:我正在使用 Laravel 5.1 + 数据表 (http://datatables.yajrabox.com/)。
我需要编辑列 user_id 并显示关系中的名字和姓氏。
这是我的代码。
public function getOrders(Request $request)
if($request->ajax())
$orders = Order::with('call', 'contact.company', 'campaign')
->Client()->Finished()->get();
return Datatables::of($orders)->editColumn('user_id',
function ($orders)
return $orders->User->firstname.' '.$orders->User->lastname;
)->make(true);
return view('global/orders');
还有我的 datatables.js 调用:
var oTable = $('#orders-data').dataTable(
"processing": true,
"serverSide": true,
"ajax": '/history/orders',
"columns": [
data: 'created_at', name: 'created_at' ,
data: 'user_id', name: 'user_id' ,
data: 'call.phone', name: 'phone' ,
data: 'contact.first_name', name: 'first_name' ,
data: 'contact.last_name', name: 'last_name' ,
data: 'contact.company.name', name: 'company' ,
data: 'contact.address', name: 'address' ,
data: 'contact.postal', name: 'postal' ,
data: 'contact.city', name: 'city' ,
data: 'contact.country', name: 'country' ,
data: 'campaign.name', name: 'name' ,
data: 'call.call_length', name: 'call_length' ,
data: 'call.comment', name: 'comment' ,
data: 'call.status', name: 'status' ,
data: 'call.full_record', name: 'full_record' ,
data: 'action', name: 'action', orderable: false, searchable: false
]
);
但是在这个$orders->User->firstname
上我收到了 10 个查询
select * from `users` where `users`.`id` = 'x' limit 1
如何在$orders = Order::with('user', 'call', 'contact.company', 'campaign')->Client()->Finished()->get();
上编辑具有关系的列?
【问题讨论】:
【参考方案1】:你试过了吗?
return Datatables::of($orders)
->editColumn('user_id', $orders->User->firstname.' '.$orders->User->lastname )
->make(true);
此致, 弗莱明
【讨论】:
【参考方案2】:解决方案是用户关系为小写:
return Datatables::of($orders)
->editColumn('user_id', function ($orders)
return $orders->user->firstname.' '.$orders->user->lastname;
)->make(true);
这是解决方案文档: https://laravel.com/docs/5.2/eloquent-relationships#eager-loading
【讨论】:
以上是关于如何在 laravel 上编辑列?的主要内容,如果未能解决你的问题,请参考以下文章