我试图使用View :: share调用Controller Action

时间:2017-02-02 14:22:06

标签: php laravel

我正在尝试在用户登录时将变量传递给每个视图,并将操作放在我的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已经使这个可用...

感谢您的期待。

1 个答案:

答案 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);

});