laravel получает список пользователей, только проверенных по электронной почте

#php #laravel #laravel-5 #eloquent #laravel-8

Вопрос:

Когда я пытаюсь получить список пользователей User:all() , он показывает мне пользователей, которые также не проверены по электронной почте.

Поэтому, чтобы избежать описанной выше ситуации, я пишу следующий код.

 $users = User::with('selfie')->whereNotNull('email_verified_at')->orderBy('created_at', 'desc')->get();
 

дайте мне знать, если есть какой-нибудь другой более короткий путь.

Ответ №1:

Мы можем определить область применения https://laravel.com/docs/8.x/eloquent#local-scopes

в Пользовательской Модели

 public function scopeVerified($query)
{
    return $query->whereNotNull('email_verified_at');
}
 

и наш запрос будет выглядеть так

 $users = User::with('selfie')
->verified()
->orderBy('created_at', 'desc')
->get();
 

Ответ №2:

Я надеюсь, что это сработает

 $users = User::whereNOTNULL('email_verified_at')->get();
 

Вы получите весь список

Комментарии:

1. да, я делаю то же самое, что вы можете видеть в моем посте. Но я хочу получить тот же результат от пользователя::все();