php Yajra DataTable在addColumn方法中获取行索引

v09wglhw  于 2023-02-03  发布在  PHP
关注(0)|答案(1)|浏览(103)

我想知道addColumn中表的第一行和最后一行,以了解其中的逻辑,就像使用刀片模板$loop->first$loop->iteration一样。
代码:

return DataTables::eloquent(HomeBanner::query())
    ->addColumn('sort', function($row) {
        if ($row->first) {
            'first'
        } elseif ($row->last) {
            'last'
        } else {
            'middle'
        }
    })
    ->toJson();
mhd8tkvw

mhd8tkvw1#

您可以通过参数传递第一个和最后一个元素,并在addColumn中进行比较

$data = Language::where('is_published', 1)->orderBy('position', 'ASC');
$first = Language::where('is_published', 1)->orderBy('position', 'ASC')->first();
$last = Language::where('is_published', 1)->orderBy('position', 'DESC')->first();
        return Datatables::of($data)
            ->addIndexColumn()
            ->addColumn('actions', function ($row) use ($first, $last) {
                if ($row == $first) {
                    $info = 'first';
                }elseif($row == $last){
                    $info = 'last';
                }else{
                    $info = 'middle';
                }
                return $info;
            })
            ->rawColumns(['actions'])
            ->make(true);

相关问题