[php] Laravel 레코드가 있는지 확인

나는 Laravel을 처음 사용합니다. 초보자 질문을 실례하지만 기록이 있는지 어떻게 알 수 있습니까?

$user = User::where('email', '=', Input::get('email'));

$user기록이 있는지 확인하기 위해 여기서 무엇을 할 수 있습니까?



답변

나중에 사용자와 작업 할 것인지 아니면 존재하는지 확인해야합니다.

존재하는 경우 사용자 오브젝트를 사용하려는 경우 :

$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
}


답변

가장 좋은 해결책 중 하나는 firstOrNew또는 firstOrCreate방법 을 사용하는 것입니다. 이 문서 에는 두 가지에 대한 자세한 내용이 있습니다.


답변

if (User::where('email', Input::get('email'))->exists()) {
    // exists
}


답변

if($user->isEmpty()){
    // has no records
}

Eloquent는 컬렉션을 사용합니다. 다음 링크를 참조하십시오 : https://laravel.com/docs/5.4/eloquent-collections


답변

if (User::where('email', 'user@email.com')->first())
    // It exists
else
    // It does not exist

사용은 first()하지 count()만 존재 여부를 확인해야합니다.

first()입니다 빨리 는 반면, 하나의 일치를 확인하기 때문에 count()카운트 모든 경기.


답변

laravel eloquent에는 default exist () 메소드가 있습니다. 다음 예제를 참조하십시오.

if(User::where('id', $user_id )->exists()){
// your code...
}


답변

라 라벨 5.6.26v

기본 키 (이메일 또는 아이디)를 통해 기존 레코드를 찾기 위해

    $user = DB::table('users')->where('email',$email)->first();

그때

      if(!$user){
             //user is not found 
      }
      if($user){
             // user found 
      }

“DB 사용”을 포함하고 테이블 이름 사용자는 사용자와 같은 위의 쿼리를 사용하여 복수가됩니다.