如何在datatable中显示相关项?

时间:2017-06-20 05:33:01

标签: php laravel datatables

我目前在数据表中显示所有餐馆,但餐馆也可以有分店/特许经营权,所以我也试图在同一张桌子上展示这些。

目前我按如下方式显示:

if ($request->ajax()) {
    $restaurant = Restaurant::query()->with('user');

    return Datatables::of($restaurant)
        ->editColumn('name', function ($restaurant) {
            return $restaurant->name;
        })
        ->editColumn('user.name', function ($restaurant) { // Owner
            return $restaurant->user->name;
        })
        ->editColumn('total_orders', function ($restaurant) {
            return $restaurant->total_orders;
        })
        ->make(true);
}

我的关系是餐厅hasMany(Branch::class);和分行belongsTo(Restaurant::class);

我没有想到一个允许我在同一餐厅数据表中显示所有分支($restaurant->branches->get())的解决方案。

任何帮助和提示都会很棒!

1 个答案:

答案 0 :(得分:0)

虽然您可以使用查询构建器执行此操作,然后执行多个连接,但我更喜欢这样做。

$restaurant = Restaurant::select('restaurant.name as name, user.name as owner,         
     restaurant.total_orders as total_orders, branches.*')
->with('user', 'branches');