我已按照此文档将数据传递给我的所有观点:
https://laravel.com/docs/5.2/views#sharing-data-with-all-views
但是,它不允许我访问路线文件中的变量。
如何将变量传递给我的所有视图,并且能够在我的所有路径的路径文件中使用它?
答案 0 :(得分:1)
您需要考虑您的流程。将某个数据传递给所有视图的目的是因为该值与视图相关,而不是路径或控制器操作。例如,页面标题或向用户显示页面底部的当前日期。
要执行您想要的操作,请查看Illuminate\View\View的API文档,您将看到函数 offsetGet 和 offsetSet 。
以下是一个例子:
应用/提供者/ AppServiceProvider.php 强>
<?php
namespace App\Providers;
class AppServiceProvider extends ServiceProvider
{
public function boot()
{
view()->share('title', 'Qevo');
}
public function register()
{
//
}
}
<强>资源/视图/ example.blade.php 强>
<h1>{{ $title }}</h1>
应用/ HTTP / routes.php文件强>
Route::get('/test', function () {
// view has to be created for shared data to be set
$v = view('example');
// get the value of the shared data
$page_title = $v->offsetGet('title');
// set a new value
$v->offsetSet('title', $page_title . ' helps');
return $v;
});
答案 1 :(得分:0)
我认为您应该使用Session(或缓存数据)
我认为使用会话是最好的方式
假设您要将一些数据添加到当前用户会话
Session::put('key', 'value');
现在您可以在视图中访问此内容
Session::get('key');
并在您的控制器/路线文件
内$value = Session::get('key');
这样,数据在控制器,路由文件和视图中可用