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