我在我的项目lravel 5.1中使用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');
根据数据表yajra文档 http://datatables.yajrabox.com/eloquent/relationships 当我和
一起使用时,它不能正常工作$candidates = \App\Suggestion::with('candidate')->get();
它的工作对接这不是根据datatable yajra文档。 任何人都能说出这背后的原因是什么。感谢
答案 0 :(得分:0)
使用eloquent模型时,如果在查询中添加了约束,则使用get()方法。 在你的问题中,你想知道为什么在yajra的文档中给出的示例中有效。原因是,他们从雄辩的模型本身返回了数据表。而您正在控制器级别创建数据表。因此,控制器必须使用get()方法从这种雄辩的关系中检索结果。
请参阅link。在检索多个模型下,解释了get的使用。
答案 1 :(得分:0)
在这里你会找到我的详细答案,我已经提到过,Controller方法,View结构,Datatable JS代码,看看