2016-12-21 2 views
2

может кто-нибудь рассказать мне, почему, когда результаты равны, тогда это эхо-ответ, но когда результаты ложны, тогда он показывает пустую страницу. Я уверен, что я пошла не так.laravel если оператор не работает

if(isset($_GET['EX1']) && $_GET['EX2'] != ""){ 

     $Email = $_GET['EX1']; 
     $Password = $_GET['EX2']; 

     $userDetails = DB::table('applicants') 
      ->where('Email', '=', $Email) 
      ->where('Password','=', $Password) 
      ->get(); 

     if($Email = $userDetails[0]->Email && $Password = $userDetails[0]->Password){ 

      echo 'Both are the same '; 

     }else{ 

      echo 'Not the same'; 

     } 
    } 
+0

Вы используете это в маршруте или контроллер? –

+0

Почему вы не используете 'Request'? –

+0

Если вы собираетесь искать первого пользователя в массиве, вы можете использовать 'first()' вместо 'get()'. Затем вы можете удалить '[0]' из своих пользовательских данных. – aynber

ответ

0

Это сработает!

public function myfunction(Request $request) { 
    if(!empty($request->EX1) && !empty($request->EX2)){ 

     $Email = $request->EX1; 
     $Password = $request->EX2; 

     $userDetails = DB::table('applicants') 
      ->where('Email', '=', $Email) 
      ->where('Password','=', $Password) 
      ->get(); 

     if($Email == $userDetails[0]->Email && $Password == $userDetails[0]->Password){ 

      return 'Both are the same '; 

     }else{ 

      return 'Not the same'; 

     } 
    } else { 
     return 'error'; 
    } 
} 

Btw, вам необходимо изменить if(.... = ....) к if(.... == ....). = предназначен для назначения значений, а == предназначен для сравнения значений.

Надеюсь, что это сработает!

2
if($Email = $userDetails[0]->Email && $Password = $userDetails[0]->Password){ 

должен быть

if($Email == $userDetails[0]->Email && $Password == $userDetails[0]->Password){ 

Вы используете назначение = вместо сравнения ==, который всегда будет возвращать true

Смежные вопросы