Laravel | Auth :: user () -> id не работает в AppServiceProvider - PullRequest
0 голосов
/ 10 ноября 2018

Я могу получить Auth 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 );
}
       });
}

Ошибка: Аргумент 1, передаваемый в Illuminate \ Database \ Grammar :: columnize (), должен иметь тип массива, заданная строка, вызываемая в

Ответы [ 2 ]

0 голосов
/ 25 мая 2019

это работа для меня

<?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());
    }
}
0 голосов
/ 11 ноября 2018

Чтобы получить идентификатор аутентифицированного пользователя, используйте Auth::id();

В другом случае может не быть текущего пользователя, и в этом случае Auth::user() возвращает NULL. Оберните код в

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

чтобы убедиться, что пользователь вошел в систему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...