【问题标题】:datatable yajra laravel eloquent not working数据表 yajra laravel 雄辩不工作
【发布时间】:2016-03-29 14:02:36
【问题描述】:

我在我的项目 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');

根据 datatable yajra 文档 http://datatables.yajrabox.com/eloquent/relationships 当我使用时它不起作用

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

它的工作原理不是根据数据表 yajra 文档。 任何人都可以说出这背后的原因是什么。谢谢

【问题讨论】:

  • get() 会给你一个 Collection,这是 Datatables 所需要的。

标签: php ajax datatables laravel-5.1


【解决方案1】:

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

请参阅link。在 Retrieving Multiple Models 下,解释了 get 的使用。

【讨论】:

    【解决方案2】:

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

    Follow Stack overflow answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-05-08
      • 1970-01-01
      • 2018-01-11
      • 1970-01-01
      • 1970-01-01
      • 2018-05-17
      • 2020-09-28
      • 1970-01-01
      相关资源
      最近更新 更多