我正在尝试在用户登录时将变量传递给每个视图,并将操作放在我的routes.php
文件中;
//functions only execute when the user is logged in
Route::group(array('before' => 'auth'), function(){
View::share('ctxr', 'user is authenticated');
});
我目前正在使用Laravel 4.2
并使用静态变量,共享功能按预期工作。如果我从任何部分或视图中调用{{ $ctxr }}
,它会正确显示,但问题是,当我对basecontroller
执行操作时,我正在考虑执行与此类似的操作:
View::share('ctxr', BaseController@getStatistics);
返回为每个视图生成的统计信息。但是我一直收到错误,请问从View::share
函数调用控制器函数的最佳方法是什么。我试图避免使用会话,因为Laravel
已经使这个可用...
感谢您的期待。
答案 0 :(得分:1)
第二个参数必须是字符串或数组。根据我的判断,回调函数不起作用。但是你可以做的是将返回的值赋给变量并传递它:
Route::group(array('before' => 'auth'), function(){
$bc = new BaseController();
$stats = $bc->getStatistics();
// Or if getStatistics is defined as a static function
$stats = BaseController::getStatistics();
View::share('ctxr', $stats);
});