2017-10-17 11 views
1

ジョインの代わりにEloquentモデルを使用して、メニューおよびサブメニューテーブルからデータを取得しようとしています。Eloquentを使用してリレーションシップからデータを取得

マイMenucontroller

class MenuController extends Controller 
{ 
// Where ever you want your menu 
    public function menu() 
    { 

     $menu = Menu::all()->load('submenu'); 

    return view('menu',compact('menu')); 
    } 
} 

マイメニューモデルが

use Illuminate\Database\Eloquent\Model; 
class Menu extends Model 
{ 


    public function submenu() 
    { 
     return $this->hasMany(SubMenu::class); 
    } 
} 

マイサブメニューのモデルは

することができます、 Menuから熱心な負荷に​​を with機能を使用し
use Illuminate\Database\Eloquent\Model; 
class SubMenu extends Model 
{ 
    public function menu() 
    { 
     return $this->belongsTo(Menu::class); 
    } 
} 

答えて

1

ですドキュメントをチェックしてくださいhereオブジェクトへのアクセス権を持って、ご使用のブレード・ビューで

class MenuController extends Controller 
{ 
    public function menu() 
    { 

     $menu = Menu::with('submenu')->all(); 
     return view('menu',compact('menu')); 
    } 
} 

@foreach ($menu as $menu_obj) 
    <p>This is the menu: {{ $menu_obj }}</p> 
    <p>This is the submenu: {{ $menu_obj->submenu }}</p> 
@endforeach 
+0

同じエラー (1/1)FatalThrowableError クラス 'のApp \のHttp \コントローラ\メニューは' MenuControllerで が見つかりません戻り値SubMenuを使用する場合は、 –

+0

:Controller.php(行55)の call_user_func_array(配列(オブジェクト(MenuController)、 'menu')、array()) の場合は、 :コントローラのget()関数it私のdbデータをエラーなしで返す –

+0

クラス宣言の前にMenuクラスをインポートする必要があります。 'Use App \ Menu;' Menu.phpクラスの場所を確認し、必要に応じて名前空間を調整します。 –

関連する問題