2015-11-12 7 views
5

私はLaravel 5.1 +データテーブル(http://datatables.yajrabox.com/)で作業しています。laravelの列を編集するには?

私はカラム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だが $orders = Order::with('user', 'call', 'contact.company', 'campaign')->Client()->Finished()->get();上の関係で列を編集する方法

select * from `users` where `users`.`id` = 'x' limit 1 

を照会しますか?

答えて

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

2

これを試しましたか?

return Datatables::of($orders)
->editColumn('user_id', {{ $orders->User->firstname.' '.$orders->User->lastname }})
->make(true);

敬具、
フレミング

関連する問題