我是Laravel的新手,例如,我希望默认情况下在所有视图中都有一个变量,有没有比每次传递该变量更好的方法
return View::make('views_x.some_view')->with('client_to_show', $client_to_show);
?或者比在Session中存储它们然后在视图中访问它们更好? 我尝试将变量放在布局主文件中:
//layout.master.blade.php on top
<?php
$str_sel_names = 'one_value';
?>
<!-- starts template -->
<!DOCTYPE html>
<html lang="en">
但是这个只能在模板布局中访问..而不是子视图......
@extends('layouts.master')
@section('content')
...
{{$str_sel_names}}
@section('content')
...
{{$str_sel_names}}
我得到:[ErrorException 未定义的变量:str_sel_names(查看:C:\ Work \ lara_street \ laravel \ app \ views \ core \ dashboard.blade.php)]
想法?更好的方法吗?
答案 0 :(得分:7)
您可以使用View Composers:
View::composer(['store.index', 'products.*'], function($view)
{
$view->with('client_to_show', $client_to_show);
});
你可以把它放在你的路线文件,过滤器文件中,或者像我一样,创建app/composers.php
并加载
require app_path().'/composers.php';
到app/start/global.php
文件。
查看分享是另一种选择:
View::share('client_to_show', $client_to_show);