【问题标题】:Yajra Datatables LaravelYajra 数据表 Laravel
【发布时间】:2022-01-31 20:14:59
【问题描述】:

我在我的 Laravel 应用程序中使用 Yajra 数据表时遇到问题。

我已按照在线指南进行操作,但我得到一个空白回复。 我需要根据他们的积分显示成员列表。

这是视图页面中的表格:


                    <div class="table-responsive">
                        <table class="table table-striped table-no-boreded table-hover" id="points-table">
                            <thead class = "text-primary">
                            <h4> </h4>
                                <tr>
                                    <th class="text-center">Postion</th>
                                    <th class="text-center">Member</th>
                                    <th class="text-center">Total Points</th>
                                    <th width="10%"></th>
                                </tr>
                            </thead>
                            <tbody>
                            </tbody>
                        </table>
                    </div>
                </div>



这是同一视图页面上的脚本

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.js"></script>
<script src="https://cdn.datatables.net/1.10.21/js/jquery.dataTables.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
<script src="https://cdn.datatables.net/1.10.21/js/dataTables.bootstrap4.min.js"></script>

<script type = "text/javascript">
    $(function() {

        var table=$('.points').DataTable({
            processing: true,
            serverSide: true,
            ajax: '{{ route('getPoints') }}',
            columns: [
                { data: 'DT_RowIndex', name: 'DT_RowIndex' },
                { data: 'member_id', name: 'member' },
                { data: 'total_points', name: 'Total Points' },
                { data: 'action', name: 'action', orderable: true, searchable: true },
            ]
        });
    })

</script>

这是控制器

  public function getPoints(Request $request)
    {
        $year =  Carbon::parse(Carbon::now())->year;

        if ($request->ajax()) {

            $points = Points::query()
            ->select('member_id')->selectRaw('SUM(value) as TotalPoints')
            ->where('Year','=', $year)
            ->groupBy('member_id')
            ->orderByDesc('Totalpoints')
            ->get();

            return Datatables::of($points)
            ->addIndexColumn();
        }
    }

我已经在路由中添加了get

Route::get('get/points', 'PointsController@getPoints')->middleware('auth')->name('getPoints');

我知道我的查询可以正常工作,因为当我有正常数据时,此查询可以正常工作。 然而在上面列出的代码下,我没有得到回应。

我的积分表中有 1 条记录,因此我应该在数据表下看到一些内容。

任何能帮助我指明正确方向的方法都很棒

【问题讨论】:

  • 课堂在哪里? $('.points') 应该是$('#points-table')
  • 谢谢,这是一个编码问题,但是让我陷入另一个无效 JSON 响应的问题

标签: laravel yajra-datatable


【解决方案1】:

您在 javascript 代码中传递了错误的类。

你需要输入$('#points-table')而不是$('.points')

var table=$('#points-table').DataTable({
  // your code
})

把代码放在你的控制器中

return DataTables::of($points)
->addIndexColumn()
->make(true);

【讨论】:

  • 谢谢,上面已经指出了,但是现在我遇到了无效的 JSON 响应错误
  • 请检查更新的答案。
  • 我希望它对你有用。
  • 开始计算要显示的关系
猜你喜欢
  • 2019-02-15
  • 1970-01-01
  • 1970-01-01
  • 2016-09-13
  • 1970-01-01
  • 1970-01-01
  • 2018-01-11
  • 2021-09-28
  • 1970-01-01
相关资源
最近更新 更多