2016-03-29 3 views
0

Я использую datatable пакет yajra в своем проекте lravel 5.1 и хочет получить данные через laravel eloquent, это мой код модели предложения.datatable yajra laravel eloquent не работает

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> 

В контроллере, когда я использую этот код

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

Согласно DataTable документации yajra http://datatables.yajrabox.com/eloquent/relationships это не т работает прикладом, когда я использую с

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

его рабочих прикладом это не соответствует DataTable документации yajra. Может ли кто-нибудь сказать, в чем причина этого. Спасибо

+0

'получить()' даст вам 'Collection', который необходим для Datatables. –

ответ

0

При использовании красноречивых моделей метод get() используется, когда к запросу добавляются ограничения. В вашем вопросе вы хотите знать, почему это сработало в примере, приведенном в документации для yajra. И причина в том, что они вернули таблицу данных из самой красноречивой модели. Принимая во внимание, что вы создаете данные на уровне контроллера. Поэтому метод get() необходим для того, чтобы контроллер извлекал результаты из этого красноречивого отношения.

См. link. В разделе «Извлечение нескольких моделей» объясняется использование get.

0

Здесь вы найдете мой детальный ответ, я уже говорил, метод контроллера, Просмотр структуры, Datatable JS код, Вы можете

Follow Stack overflow answer

Смежные вопросы