Php 我正在尝试使用View::share调用控制器操作

Php 我正在尝试使用View::share调用控制器操作,php,laravel,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,使用的是一个静态变量,share函

当用户登录时,我试图向每个视图传递一个变量,并将该操作放在我的
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
,使用的是一个静态变量,share函数按预期工作。如果我从任何部分或视图调用
{{$ctxr}
,它会正确显示,但问题是,当我在
basecontroller
上执行操作时,我正在考虑执行类似的操作:

View::share('ctxr', BaseController@getStatistics);
它返回生成到每个视图的统计信息。但是我一直遇到一个错误,请问从
View::share
函数调用控制器函数的最佳方式是什么。我试图避免使用会话,因为
Laravel
已经提供了此功能


非常感谢。第二个参数必须是字符串或数组。据我所知,回调函数不起作用。但您可以做的是将返回值赋给变量并传递:

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

});

您遇到了什么错误?我一发布此消息,就尝试将该方法转换为静态函数,并调用它::'View::share('ctxr',BaseController::getStats());'它成功了。。。用静态方法。。。。经过这么多的考验……谢谢,我喜欢你的方法我会这么做的,谢谢。