将变量传递给 blade 视图的首选方法

The preferred approach to pass variables to blade view

所以我正在 Laravel 5 中开发一个小型 CMS,我没有完全理解的第一件事就是将变量传递给视图。

我见过类似的东西

return View('view', array('name' => 'your name here'));

或视图组合器中的变量

public function compose($view) {
    $view->with(Config::get('configfile'));
}

但我仍然想知道是否有 better/more 优雅的方法来做到这一点。例如,对于第一种方法,我必须在每个视图中都给它那个数组,这看起来很麻烦,而对于视图组合器,感觉应该有更好的解决方案。

是否有推荐的方法将这些变量推送到视图上?

另外,我说的是每个视图都需要的一组变量。例如网站的名称和标语。

谢谢。

您可以使用路由模型绑定:https://laravel.com/docs/5.2/routing#route-model-binding 进行特定于模型的数据绑定。除此之外,没有(实用的)方法可以做到。

您是否考虑过 view()->share 查看文档 Sharing Data with All Views

<?php

namespace App\Providers;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        view()->share('key', 'value');
    }
}

它允许您将一块数据与您的所有视图共享。如果您需要在大多数视图中访问配置,我看不出有任何理由不能以这种方式加载所有配置。