2017-06-20 8 views
0

私は現在、データテーブルにすべてのレストランを表示していますが、店舗には支店/フランチャイズもあるので、同じテーブルにこれらを表示しようとしています。次のように私はそれらを表示現時点で関連アイテムをデータテーブルに表示する方法は?

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); 
} 

私の関係は、私は私がすべてのブランチ($restaurant->branches->get()を表示することができます解決策を考えるために失敗しているレストランhasMany(Branch::class);と支店belongsTo(Restaurant::class);

です)同じレストランdatatableの中に。

何か助けとヒントが素晴らしいでしょう!

答えて

0

クエリビルダでこれを行うことができますが、複数の結合を行うことができますが、このようにすることをお勧めします。

$restaurant = Restaurant::select('restaurant.name as name, user.name as owner,   
    restaurant.total_orders as total_orders, branches.*') 
->with('user', 'branches'); 
関連する問題