這是一個很常見的任務。我試圖在整個網站的導航欄上顯示用戶個人資料照片。 輪廓圖片均來自網址,谷歌,Facebook,或者如果用戶上傳他們S3。我有這個功能來訪問圖片如何通過AppServiceProvider在導航中傳遞用戶個人資料圖片? laravel-5
public static function get_profile_pic($user){
$pic=array_flatten($user->media->where('category','profile'))[0]->path;
if(empty($pic)){
$pic = '/images/user-icon.jpg';
return $pic;
}else
return $pic;
}
在我的導航視圖我有:
@if(Auth::check())
<li><img class='nav-pic' src='<?php link_to_action('[email protected]',$pic)?>'/></li>
我的HomeController:
類HomeController的擴展控制器{
public function index(Request $request) {
if ($request->user()) {
$user = $request->user();
$pic = User::get_profile_pic($user);
}
view()->share('scripts', array('home.js'));
return view('home.index', compact('user'));
}
這是我在AppServiceProvider
public function boot()
{
if (Auth::check()){
$user = Auth::user();
$pic = User::get_profile_pic($user);
view()->composer('includes.new_nav1',function($view){
$view->with('pic', User::get_profile_pic($user));
});
}
}
我跟着laracast教程一些。 https://laracasts.com/series/laravel-5-fundamentals/episodes/25。 – joejoeso
改變'$視圖 - >與( 'PIC',用戶:: get_profile_pic($用戶));''到$視圖 - >與( 'PIC',$ PIC);',我認爲你有'使用應用程序\用戶;'你AppServiceProvider類的頂部,如果也不它添加或更改'$ PIC =用戶:: ....''到$ PIC =軟件\用戶:: ..' – futureweb
也做你的靜態功能住在你的用戶模式?你是在用戶模型上調用它,然後將用戶傳遞給它?它不應該只是'$ pic = get_profile_pic($ user);'?我有這樣的事情作爲一個幫手功能自動加載通過作曲家 – futureweb