2016-03-29 14 views
0

私のプロジェクトlravel 5.1でdatatable yajraパッケージを使用していて、laravel eloquentでデータを取得したいのですが、これは私の提案モデルコードです。datatable yajra laravel eloquent not working

public function candidate() 
    { 
       return $this->belongsTo('App\Candidate', 'suggested_user'); 
    } 

これはコントローラコードです。

public function getBCReport() 
    { 
$candidates = \App\Suggestion::with('candidate')->get(); 
return Datatables::of($candidates) 
    ->make(true); 
    } 

そして、これが私の見解コードです:コントローラで

<

div class="panel-body"> 
     <div class="candidatereport"> 
      <div class="table-responsive">        
       <table class="table display" id="table_id" cellspacing="0" width="100%"> 
        <thead> 
         <tr> 
         <th>First Name</th> 
         <th>Last Name</th> 

         </tr> 
        </thead> 
        <tbody> 
        </tbody> 
       </table> 
      </div> 
     </div> 
    </div> 
</section> 
<script> 
$(function() { 
    $('#table_id').DataTable({ 
     processing: true, 
     serverSide: true, 
     dataType: 'json', 
     ajax: '{!! route('datatables.candidatereport') !!}', 
     columns: [ 
      { data: 'candidate.fname', name: 'fname' }, 
      { data: 'candidate.lname', name: 'lname' }, 

     ] 
    }); 
}); 
</script> 

私はDataTableのyajraドキュメント http://datatables.yajrabox.com/eloquent/relationships によると、このコード

$candidates = \App\Suggestion::with('candidate'); 

を使用する場合、それはノーです私が使用しているときに働くバット

$candidates = \App\Suggestion::with('candidate')->get(); 

これはdatatable yajraの文書によるものではありません。 誰でもこれの背後にある理由を伝えることができます。ありがとう

+0

'取得()'あなたを与える 'Collection'を持っていますこれはDatatablesに必要です。 –

答えて

0

雄大なモデルを使用する場合、クエリに制約が追加されている場合はget()メソッドが使用されます。 あなたの質問では、yajraの文書で与えられた例でうまくいった理由を知りたいです。その理由は、彼らは雄弁なモデル自体からデータテーブルを返してきたからです。一方、コントローラレベルでデータテーブルを作成しています。したがって、コントローラがこの雄弁な関係から結果を取得するためには、get()メソッドが必要です。

linkを参照してください。 「複数のモデルの取得」では、getの使用法について説明します。ここで

0

あなたは私の詳細な答えを見つけるでしょう、私が言及している、コントローラのメソッドは、ビューの構造は、DataTableのJSコードは、ルック

Follow Stack overflow answer