将
放入任何控制器中时,我可以获得身份验证IDAuth::user()->id
但是当我将其放在AppServiceProvider.php中时,它会返回“试图获取非对象的属性'id'
我不明白为什么?
Eddit:我尝试了此操作,但仍无法正常工作
public function boot()
{
view()->composer('*', function ($view)
{
if (Auth::check())
{
$id=Auth::user()->id;
$idd=Person::where('user_id','=',$id)->get('photo');
$view->with('idd', $idd );
$view->with('id', $id );
}
});
}
错误: 传递给Illuminate \ Database \ Grammar :: columnize()的参数1必须为数组类型,给定字符串,在
中调用答案 0 :(得分:0)
要获取当前经过身份验证的用户的ID,请使用
Auth::id();
另一种情况可能是没有当前用户,在这种情况下Auth::user()
返回NULL。将代码包装在
if (Auth::check())
{
// Do stuff
}
确保有用户登录。
答案 1 :(得分:0)
这对我有用
<?php
namespace Fitness\Providers;
use Illuminate\Http\Request;
use Illuminate\Support\ServiceProvider;
class AppServiceProvider extends ServiceProvider
{
/**
* Bootstrap any application services.
*
* @return void
*/
public function boot(Request $request)
{
view()->share('user', $request->user());
}
}