2015-05-12 13 views
5

Laravel 5 kullanıyorum, bir görünüme değişken kategorileri çıkarmaya çalışıyorum ancak şu anda tanımlanmamış bir değişken hatası alıyorum.Laravel 5 View besteci bana tanımlanmamış bir değişken hatası veriyor

İşte kod. yapılandırmasında İlk

/app.php: Uygulama/Sağlayıcıları

'App\Providers\AppServiceProvider', 

/AppServiceProvider.php:

<ul> 
    <li>Home</li> 
    @foreach($categories as $category) 
     <li><a href="/store/category/{!! $category->id !!}">{!! $category->name !!}</a></li> 
    @endforeach 
    <li>Basket</li> 
    <li>Checkout</li> 
    <li>Contact Us</li> 
</ul> 
: partials/menu.blade.php olarak

public function boot() 
    { 
     View::composer('partials.menu', function($view) 
     { 
      $view->with('categories', Category::all()); 
     }); 
    } 

ve mağaza/ürünler.php:

@include('partials.menu') 

Aldığım tam hata: Tanımsız değişken: kategoriler bunu çözme konusunda herhangi bir yardımı takdir edecektir.

Teşekkür

+0

Bir çözüm buldunuz – Nikonah

cevap

0

i yerine bu deneyin "ile" yöntemi argüman olarak bir dizi kabul düşünüyorum!

$categories = Categories::all(); 
$view->with(compact('categories')); 
+0

Gerçekten değil. 'ile 'hem dizeyi hem de diziyi kabul eder. Bkz. [Kaynak] (https://github.com/laravel/framework/blob/5.5/src/Illuminate/View/View.php#L177). – ruuter

0

Sorunun app/Providers/AppServiceProvider.php'unuzdan çıktığını anladım.

Önyükleme yönteminizde view::composer, görüntülerini almak için görüntüleyicinizin başvuruda bulunacağı anlamına gelir. yani View::composer(['partials.menu'], function($view) { .. }

komple çözüm bakınız:

public function boot() 
{ 
    View::composer(['partials.menu'], function($view) 
    { 
     $view->with('categories', Category::all()); 
    }); 
} 
0

sadece sen ad değişmedi varsayarak \App\Categories::all() için Categories::all() değiştirmek doğru sorguda Kategoriler sınıfını geçmesi gerekiyor.

0

composer dump-autoload 
or 
php artisan cache:clear 
or 
php artisan config:clear 

bazen bu basit hileler yardımcı olan şu komutları deneyin.