2017-03-13 13 views
1

チェックボックスを使用してモデル内の検索結果を検索し、ページに表示する検索を実行しようとしています。Laravelのwhere()を使用してシンプルな検索を実行する

マイルート:

Route::get('parts/cpu', '[email protected]'); 
Route::get('parts/cpu/search', '[email protected]'); 

マイコントローラー:

public function cpuList(){ 
    $processors = Processor::all(); 

    return view('parts.cpuList', compact('processors')); 
} 
public function searchCpu(Request $request){ 
    $processors = Processor::query(); 
    $processors->where('tech', '=', $request->input('tech'))->get(); 

    return view('parts.cpuList', compact('processors')); 
} 

マイビュー:

<form method="GET" action="/parts/cpu/search"> 
       <div class="checkbox"> 
        <label><input type="checkbox" name="tech" value="Intel">Intel</label> 
       </div> 
       <div class="checkbox"> 
        <label><input type="checkbox" name="tech" value="AMD">AMD</label> 
       </div> 
       <input value="Submit" type="submit" class="pull-right btn btn-primary"> 
      </form> 
     <ul class="list-group"> 
      @foreach ($processors as $processor) 
       <li class="list-group-item clearfix"><a href="/parts/cpu/{{$processor->id}}">{{$processor->name}}</a></li> 
      @endforeach 
     </ul> 

イム次のエラー取得:モデルなしクエリ結果を[アプリケーション\プロセッサ] 。

これは、検索に表示されているURLです:?/パーツ/ CPU /検索ハイテク=インテル

答えて

0

ルーティングの問題のようです...

私はルートや部品へのフォームアクションを変更した場合/検索と/部品/検索それぞれそれは、Laravelのようないくつかのルートの優先順位が競合の原因となっているように見えます。

それとも、私が内部プロセッサの詳細ページ用に設定している私のワイルドカードのルートに干渉することができます誰もがこの上の任意のより多くの光を当てることができれば

Route::get('parts/cpu/{processor}', '[email protected]'); 

それをいただければ幸いです。

0

この

$query = Processor::query(); 
$processors = $query->where('tech', '=', $request->input('tech'))->get(); 
1

を試してみてください、あなたのデータベースで実行されている2つのクエリを持ってする必要はありません。

変更この:これに

$processors = Processor::query(); 
$processors->where('tech', '=', $request->input('tech'))->get(); 

$processors = Processor::where('tech', '=', $request->input('tech'))->get(); 
+0

それでもクエリ結果は得られません – Rick

+0

とにかく2つのクエリがありませんでした。 –

+0

私の間違いは、2つのクエリはありませんが、彼はプロセッサから不要なデータをすべて取得しています。 @SanzeebAryal – Onix

関連する問題