数据表yajra laravel雄辩不工作

时间:2016-03-29 14:02:37

标签: php ajax datatables laravel-5.1

我在我的项目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文档。 任何人都能说出这背后的原因是什么。感谢

2 个答案:

答案 0 :(得分:0)

使用eloquent模型时,如果在查询中添加了约束,则使用get()方法。 在你的问题中,你想知道为什么在yajra的文档中给出的示例中有效。原因是,他们从雄辩的模型本身返回了数据表。而您正在控制器级别创建数据表。因此,控制器必须使用get()方法从这种雄辩的关系中检索结果。

请参阅link。在检索多个模型下,解释了get的使用。

答案 1 :(得分:0)

在这里你会找到我的详细答案,我已经提到过,Controller方法,View结构,Datatable JS代码,看看

Follow Stack overflow answer