Wenn Variablen in mehreren Views gebraucht werden, könnte man die über den Konstruktor erstellen und dann jeweils der View-Funktion mitgeben, dann muß aber doch jedesmal die Templatevariable neu mitge
Wenn Variablen in mehreren Views gebraucht werden, könnte man die über den Konstruktor erstellen und dann jeweils der View-Funktion mitgeben, dann muß aber doch jedesmal die Templatevariable neu mitgegeben werden.
Noch einfacher geht es, wenn man das auf einen Serviceprovider (z.B. app/Providers/AppServiceProvider.php) auslagert. Man kann hierfür auch extra einen erstellen (php artisan make:provider ViewComposer), muß ihn dann aber auch in der config/app.php anmelden!
Damit dem posts.blade.php jedesmal die Variable "categories" mitgegeben wird, muß der AppServiceProvider z.B. so aussehen:
namespace blog\Providers;
use Illuminate\Support\ServiceProvider;
use blog\Models as Models;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
view()->composer('posts', function($view)
{
$view->with('categories', Models\blog_categories::getCategoriesWithCount());
});
}
/**
* Register any application services.
*
* @return void
*/
public function register()
{
//
}
}
Quelle: https://laracasts.com/series/laravel-5-fundamentals/episodes/25