Laravel | Auth :: user()-> id在AppServiceProvider中不起作用

时间:2018-11-10 17:33:07

标签: laravel

放入任何控制器中时,我可以获得身份验证ID
Auth::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必须为数组类型,给定字符串,在

中调用

2 个答案:

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