2016-09-14 11 views
1

私のLaravel Bladeレイアウトでは、ヘッダー、ナビゲーション、フッターなどのファイルを作成しました これらのファイルは@include()でした。 yield('content')Laravel Blade - すべての公共機能でデータを使用せずにレイアウトにデータを渡す

ここでは、たとえば、製品をビューで表示したいとします。ただし、ビューにはnav.blade.phpが使用されています。これはカテゴリ(dbからロード)を示しています。

Undefined variable: categories 

すべてのビューでそれを送信することなくナビにデータを与える可能性がある:NAVはcategoriesに関するデータがないので

私の見解に私のproductデータを送信し、私は、エラーを取得します?

製品ページ用

マイpublic functionは現在、次のようになります。それはまたそれでこれを送信する必要があります動作させるためには

$product = Product::findOrFail($id); 
return view('product.single')->with('product', $product); 

$categories = Category::with('subcategories.products.prices', 'subcategories.products.image')->get(); 

しかし、私はそれを送信する必要はありませんあらゆる視点で

+0

悪いコードに対して道徳的でない場合は、必要に応じてそのコード行をビューに追加することができます。 – apokryfos

+0

これはビューコンポーザーを使用することができます。 https://laravel.com/docs/5.3/views#view-composers – follio

+0

http://stackoverflow.com/questions/29715813/laravel-5-global-blade-view-variable-available-in-all-templates – anwerj

答えて

1

についてView Composersをお読みください。

ビュー作曲はコールバックや ビューがレンダリングされるときに呼び出され、クラスメソッドです。ビューがレンダリングされるたびにビュー にバインドするデータがある場合、ビューコンポーザーを使用してそのロジックを単一の場所に整理することができます( )。

関連する問題