Laravel Возможно ли улучшить запрос Auth :: id ()? - PullRequest
1 голос
/ 12 марта 2019

В Laravel при запуске любой функции Auth для получения аутентифицированного пользователя Auth::user(), Auth::check() или Auth::id() всегда генерируется следующий запрос:

select * from `users` where `id` = 1 limit 1

Во многих случаях это можетбыть более эффективным, поскольку я просто хотел узнать, аутентифицирован ли пользователь.

При использовании Auth::id() запрос должен быть как минимум оптимизирован до select id from вместо select * from.

Есть ли способ избежать выполнения запроса или хотя бы улучшить его?

1 Ответ

1 голос
/ 12 марта 2019

Я нашел определение Auth::id() / auth()->id(), равное

public function id()
{
    if ($this->loggedOut) {
        return;
    }

    return $this->user()
                ? $this->user()->getAuthIdentifier()
                : $this->session->get($this->getName());
}

Это означает, что он уже использует сессию.

Теперь для лучшего способа сделать это, возможно, вам нужно больше изучить SessionGuard и Auth контракты.

...