2016-04-25 11 views
2

私は学生の結果を検索しているWebアプリケーションに取り組んでいます。学生ロールには入っていません。データベースからデータを取得しています。 、私はフォームとフィールドname = keywordからの入力を取得しています。私は$ rollnoと完璧に動作しているキーワードを比較していますが、他の部分は、roll no 0と入力すると実行されます。何も入力せずに空のビューを表示し、それ以外の部分は実行しません。その他条件が偽であっても実行されないLaravel 5.2

検索機能は、学生コントローラー更新

public function search() 
     { 
      $keyword = Input::get('keyword'); 
      $rollno = Student::find($keyword); 
      if($rollno = $keyword){ 
       return View::make('results.single') 
       ->with('search',Student::where('rollno',$keyword) 
       ->get())->with('keyword',$keyword); 
      }else{ 
       return 'Nothing Found'; 
      } 
} 

である:質問をクリアするためのアレックスに

おかげで、しかし私は、以下に私の検索機能を変更し、それが完璧に働きました。

public function search() 
    { 
     $keyword = Input::get('keyword'); 
     $row = Student::where('rollno',$keyword)->first(); 
     $rollno = $row['rollno']; 
     if($keyword == $rollno){ 
      return View::make('results.single') 
      ->with('search',Student::where('rollno',$keyword) 
      ->get())->with('keyword',$keyword); 
     }else{ 
      return 'Nothing Found'; 
     } 
    } 
+3

比較する必要があります。これは比較しないでください($ rollno = $ keyword){'これは比較ではありません。違います 。 '=='が必要です –

答えて

2

まず、文字列とオブジェクトを比較しようとしています。 ->keywordRowを追加してください。keywordRowを実際のものに変更してください。

次に、==または===(はるかに良い)演算子を使用して比較してください。

if($rollno = $keyword)

あなたは$rollnoから$keywordを割り当てていることを意味どの:=assignment operator

$keyword = Input::get('keyword'); 
$rollno = Student::find($keyword)->keywordRow; 
if($rollno === $keyword){ 
+0

キーワード行はロールノードの行を意味しますか? –

+0

コードを '$ keyword = Input :: get( 'keyword')に変更しました。 \t \t $ rollno = Student :: find($ keyword); \t \t if($ keyword == $ rollno ['rollno']){} 'しかしまだ動作していません他の部分が実行中です –

+0

@LaravelWarriorあなたの答えがあります。 –

0

あなたの条件がある場合です。したがって、これは割り当てはtrueです。したがって、あなたのifの条件は常に成功し、あなたのelseの部分は意味を持ちません。正確な比較演算子を使用する必要がありますif

関連する問題