Laravel проверка наличия записи
новый для laravel, поэтому извините вопрос новичка, но как найти, существует ли запись?
$user = User::where('email', '=', Input::get('email'));
что бы я сделал здесь, чтобы увидеть, если $user
есть запись?
13 ответов
Это зависит от того, хотите ли вы работать с пользователем после этого или только проверить, существует ли он.
Если вы хотите использовать объект пользователя, если он существует:
$user = User::where('email', '=', Input::get('email'))->first();
if ($user === null) {
// user doesn't exist
}
и если вы только хотите проверить
if (User::where('email', '=', Input::get('email'))->count() > 0) {
// user found
}
или еще лучше
if (User::where('email', '=', Input::get('email'))->exists()) {
// user found
}
if($user->isEmpty()){
// has no records
}
Eloquent использует коллекции. См. следующую ссылку:https://laravel.com/docs/5.4/eloquent-collections
Это просто узнать, если есть какие-либо записи или нет
$user = User::where('email', '=', Input::get('email'))->get();
if(count($user) > 0)
{
echo "There is data";
}
else
echo "No data";
в контроллере
$this->validate($request, [
'email' => 'required|unique:user|email',
]);
в вашем представлении-дисплей уже существует сообщение
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
$user = User::where('email', request('email')->first();
return (count($user) > 0 ? 'Email Exist' : 'Email Not Exist');
вы можете использовать проверку laravel .
но этот код тоже хорош:
$user = User::where('email', $request->input('email'))->count();
if($user > 0)
{
echo "There is data";
}
else
echo "No data";
это проверит, существует ли конкретный адрес электронной почты в таблице:
if (isset(User::where('email', Input::get('email'))->value('email')))
{
// Input::get('email') exist in the table
}
проверка null
внутри предотвращает возврат Laravel 404 сразу после завершения запроса.
if ( User::find( $userId ) === null ) {
return "user does not exist";
}
else {
$user = User::find( $userId );
return $user;
}
похоже, что он запускает двойной запрос, если пользователь найден, но я не могу найти другого надежного решения.
фреймворк Laravel 5.6.26 в
чтобы найти существующую запись через первичный ключ (email или id )
$user = DB::table('users')->where('email',$email)->first();
затем
if(!$user){
//user is not found
}
if($user){
// user found
}
включить "использовать DB" и имя таблицы пользователь становится множественным числом, используя вышеуказанный запрос, как пользователь для пользователей
самые короткие работая варианты:
// if you need to do something with the user
if ($user = User::whereEmail(Input::get('email'))->first()) {
// ...
}
// otherwise
$userExists = User::whereEmail(Input::get('email'))->exists();
это простой код для проверки электронной почты или нет в базе данных
$data = $request->all(); $user = DB::table('User')->pluck('email')->toArray(); if(in_array($user,$data['email'])) { echo 'existed email'; }