将变量传递给 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');
}
}
它允许您将一块数据与您的所有视图共享。如果您需要在大多数视图中访问配置,我看不出有任何理由不能以这种方式加载所有配置。
所以我正在 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');
}
}
它允许您将一块数据与您的所有视图共享。如果您需要在大多数视图中访问配置,我看不出有任何理由不能以这种方式加载所有配置。