Проверьте, существует ли выбранный пользователь в базе данных.Laravel - PullRequest
1 голос
/ 25 сентября 2019

Я хочу проверить, что выбранный пользователь существует в БД.Предположим, я назначил аутентифицированного пользователя переменной, и тот же пользователь был удален с другой переменной.Но первая переменная содержит значение удаленного пользователя.Поэтому я хочу проверить, существуют ли пользовательские данные в БД.Как то так.

$user = Auth::user();
$user1 = Auth::user();
$user1->delete();
if($user->existsInDB()){
     //
}

Ответы [ 2 ]

1 голос
/ 25 сентября 2019

Если вы посмотрите на официальную документацию , вы увидите, что есть метод fresh:

Новый метод будет повторно извлекать модель из базы данных,На существующий экземпляр модели это не повлияет:

Если мы посмотрим на исходный код, метод fresh возвращает ноль, если модель не существует (например, если вы создаете new Model) или если его невозможно найти:

/**
 * Reload a fresh model instance from the database.
 *
 * @param  array|string  $with
 * @return static|null
 */
public function fresh($with = [])
{
    if (! $this->exists) {
        return;
    }
    return static::newQueryWithoutScopes()
                ->with(is_string($with) ? func_get_args() : $with)
                ->where($this->getKeyName(), $this->getKey())
                ->first();
}

Теперь в вашем коде вы можете просто добавить нулевую проверку для достижения своей цели ... что-то вроде:

$user = Auth::user();
$user1 = Auth::user();
$user1->delete();

if($user->fresh()){
     // !== null => it exists
} else {
     // === null => it doesn't exists
}
0 голосов
/ 25 сентября 2019

use может сделать это с помощью метода 'find ()' следующим образом:

   $user=Users:find(Auth::id())

   if($user)
     {
      //user is exist
     }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...