【问题标题】:Laravel 5.2, passing same parameters to multiple routes/viewsLaravel 5.2,将相同的参数传递给多个路由/视图
【发布时间】:2016-06-17 17:56:08
【问题描述】:

我正在使用 Laravel 5.2 构建一个应用程序,它会同时具有前端商业商店和后端管理面板。

我想与前端视图共享一组变量(购物车、公司名称、徽标等)。这些路由分布在几个控制器上。如何一次性共享相同的变量?

例如

我的 routes.php 是:

Route::get('/','PagesController@showHome');
Route::get('/checkout','CartController@showCheckout');
Route::get('/login', 'PagesController@showLoginForm');

对于这些路由/视图中的每一个(而不是管理面板中的那些),我想共享一个变量:

 $webConfig = [
'logo'=>'/logo@2x.png',
'company'=>'Acme Inc',
...
    ]

【问题讨论】:

  • 你看过View Composers吗?
  • @jszobody 不是用来做视图渲染后的事情吗?您能否举例说明我如何使用它来传递变量?
  • 当您拥有多个视图需要的数据时,视图合成器是一种将其放在一个位置并从控制器中获取副本的好方法。
  • 谢谢,这似乎是我需要的代码。

标签: php laravel


【解决方案1】:

视图编辑器只能在视图之间共享一个变量。

但是,如果您要在服务提供商内部选择以下内容:

config(['web' => ['logo'=>'/logo@2x.png', 'company'=>'Acme Inc']]);

现在您可以在应用中的任何位置使用config('web.logo)config('web.company)

【讨论】:

  • 谢谢!我其实很早就实现了它,完全忘记了我可以做到这一点。
  • 如果值来自数据库怎么办。你会建议如何处理这个?还是从配置?
  • 当然,你可以做类似config(['web' => [Config:query()->first()->toArray()]])
猜你喜欢
  • 2016-05-16
  • 2019-12-07
  • 2017-01-22
  • 1970-01-01
  • 1970-01-01
  • 2019-03-03
  • 2018-08-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多