我试图做一个view::share('current_user', Auth::User());
,但在laravel 5我找不到在哪里做这个,在L4中你可以在baseController中做到这一点,但那个不再存在。Laravel 5查看::共享
GRT格伦
我试图做一个view::share('current_user', Auth::User());
,但在laravel 5我找不到在哪里做这个,在L4中你可以在baseController中做到这一点,但那个不再存在。Laravel 5查看::共享
GRT格伦
首先,你也许可以创建自己的BaseController,并在其他控制器扩展。
第二件事,你可以直接在视图中使用Auth:user()
,你不需要在视图中分配任何东西。
其他用途,你可以去app/Providers/App/ServiceProvider.php
和boot
方法,你可以View::share('current_user', Auth::User());
但还是当然,你需要添加第一个导入的命名空间:
use View;
use Auth;
,因为这个文件是在App\Providers
命名空间
这将有助于:
App::booted(function()
{
View::share('current_user', Auth::user());
});
我v试了一下,把它放在应用程序/供应商根本不工作。另一种方法是创建一个全局中间件并将View :: share('currentUser',Auth :: user());那里。
我使用Laravel 5.0.28,view::share('current_user', Auth::User())
因为这个问题https://github.com/laravel/framework/issues/6130
我要做的反而是,首先使用工匠一个新的服务提供商不工作了。
php artisan make:provider ComposerServiceProvider
然后加入ComposerServiceProvider到config/app.php
提供商阵列
//...
'providers' => [
//...
'App\Providers\ComposerServiceProvider',
]
//...
然后打开app/Providers/ComposerServiceProvider.php
刚才创建,引导方法中添加以下
/**
* Bootstrap the application services.
*
* @return void
*/
public function boot()
{
View::composer('*', function($view)
{
$view->with('current_user', Auth::user());
});
}
最后,进口View
和Auth
门面
use Auth, View;
在Laravel 5使用相同的方法,在laravel 4:
View::share('current_user', Auth::User());
,或者使用视图助手:
view()->share('current_user', Auth::User());
你会在哪里放这样的代码? :) – Kiwi 2014-10-09 10:35:59
根据注册功能 – 2014-10-09 10:43:13