Пытаетесь получить идентификатор пользователя с помощью Auth::id(), но это не работает в моей модели?

Я использую пакет паспорта в своем проекте Laravel, и я сделал это точно на основе Laravel Docs. Когда пользователь вошел в систему, и я хочу использовать Auth::id() в своей модели, он возвращает null.

Например, здесь это работает:

    public function like()
{
    if (!$this->favorites()->where('user_id',Auth::id())->exists()) {
        $this->favorites()->create(['user_id' => Auth::id()]);
    }
    return $this;
}

но здесь нет (прямо под этим):

    public function isFavorited()
{
    return $this->favorites()->where('user_id', Auth::id())->exists();
}
    

person Rasoul Hesami Rostami    schedule 24.07.2020    source источник
comment
Ваш код говорит auth()->id(), разве это не должно быть auth()->user()->id (обратите внимание на идентификатор без скобок)   -  person Maarten Veerman    schedule 25.07.2020
comment
@MaartenVeerman Нет, auth()->id() — это сокращение от auth()->user()->id.   -  person patricus    schedule 25.07.2020
comment
Быстрое решение из связанного ответа: если вы переходите по маршруту, который не защищен промежуточным программным обеспечением auth:api, вам нужно указать, что вы хотите, чтобы пользователь из api Guard: изменился на auth()->guard('api')->id().   -  person patricus    schedule 25.07.2020