2015-05-12 17 views
5

Sto usando Laravel 5, sto provando a generare le categorie variabili in una vista ma attualmente sto ottenendo un errore variabile non definito.Laravel 5 Visualizza il compositore mi dà un errore variabile non definito

Ecco il codice.

primo luogo in config/app.php:

'App\Providers\AppServiceProvider', 

In app/Fornitori/AppServiceProvider.php:

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

In partial/menu.blade.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> 

e in negozio/products.php:

@include('partials.menu') 

L'errore esatto che ottengo è: variabile indefinita: categorie qualsiasi aiuto per risolvere questo sarebbe apprezzato.

Grazie

+0

Hai trovato una soluzione – Nikonah

risposta

0

penso che il metodo "con" accetta un array come argomento, invece provare questo!

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

Non proprio. 'with' accetta sia stringa che array. Vedi [la fonte] (https://github.com/laravel/framework/blob/5.5/src/Illuminate/View/View.php#L177). – ruuter

0

Ho capito che il problema era dal tuo app/Providers/AppServiceProvider.php.

Nel metodo di avvio, view::composer ha lo scopo di ricevere una serie di viste a cui il compositore deve applicare. vale a dire View::composer(['partials.menu'], function($view) { .. }

Vedere la soluzione completa:

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

è necessario passare alla classe categorie nella query in modo corretto, basta cambiare Categories::all()-\App\Categories::all() assumendo non è stato modificato lo spazio dei nomi.

0

provare questi comandi

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

a volte, questi semplici trucchi aiuto.

Problemi correlati