'Laravel | Auth::user()->id isn't working in AppServiceProvider

I can get the Auth ID when i put it in any controller with

Auth::user()->id

But when i put it in AppServiceProvider.php , it returns `Trying to get property 'id' of non-object

i don't understand why ?

Eddit : I tried this but still not working

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

Error : Argument 1 passed to Illuminate\Database\Grammar::columnize() must be of the type array, string given, called in



Solution 1:[1]

To get the currently authenticated user's ID, use Auth::id();

Another case may be that there is not a current user, in which case Auth::user() is returning NULL. Wrap the code in a

if (Auth::check())
{
    // Do stuff
}

to make sure there is a user logged in.

Solution 2:[2]

view()->composer('*', function($view)

 {$view->with('user',auth()->user());

});

Solution 3:[3]

it's work for me

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

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1
Solution 2 Dharman
Solution 3 iElden