我有带REST方法的内容控制器(index..create..store ..),我希望在运行任何这些方法之前运行一些代码。
我想要做的是为我的布局设置var,其中一些数据与内容控制器中的所有方法相关:
$this->layout->myvar = 'some-data';
我试着这样做:
class ContentController extends BaseController {
function __construct() {
$this->layout->myvar= 'some-data';
}
..
但它似乎不起作用。 我得到"尝试分配非对象的属性"错误。
答案 0 :(得分:7)
在Laravel 5之前,您可以像这样设置beforeFilter
:
class ContentController extends BaseController {
function __construct() {
// this function will run before every action in the controller
$this->beforeFilter(function()
{
// this will make the variable $myvar available in your view
$this->layout->with('myvar', 'some-data');
});
}
}
...这在Laravel 5中已被弃用,转而支持Middleware。
答案 1 :(得分:4)
尝试在app / routes.php中分享
View::share('variable_name', 'value');
例如:
View::share('name', 'Steve');
将在所有视图中共享变量及其值