2017-08-29 98 views
1

這是我的Laravel路線,我從表格中獲取'q'的值以從測驗表執行搜索。在Laravel中使用路線而不是控制器搜索

Route::get('/admin/Searchquizzes',function ($q) {  

$quizzes = DB::table('quiz') 
      ->leftjoin('category', 'quiz.category_id', '=', 'category.id') 
      ->where('name','LIKE','$q') 
      ->select('quiz.*', 'category.name As category_name') 

      ->get(); 
$categories = DB::table('category')->select('id', 'name')->get(); 

return view('admin/quizlisting', ['quizzes' => $quizzes, 'categories' => $categories]); 
)->middleware('auth')->name('admin.Searchquizzes'); 

這是我的laravel形式進行搜索代碼..

<div class="input-group"> 
     <input type="text" name="q" id="q" class="form-control" placeholder="Search..."> 
      <span class="input-group-btn"> 
      <button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i> 
      </button> 
      </span> 
    </div> 
    </form> 

這不是工作,我不知道爲什麼,幫助應當理解。

+1

首先,你錯過了關閉的閉包(}功能)。它不完全是如何工作的? –

回答

0

YOu將不會獲得該表單值。您沒有使用POST方法

<form method="POST" action="{{route('admin.Searchquizzes')"> 
    {{ csrf_field() }} 
    <div class="input-group"> 
     <input type="text" name="q" id="q" class="form-control" placeholder="Search..."> 
     <span class="input-group-btn"> 
     <button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i> 
     </button> 
     </span> 
    </div> 
</form> 

路線:

use Illuminate\Http\Request; 

Route::POST('/admin/Searchquizzes',function (Request $request) { 
    //dd($request->q); 

    $quizzes = DB::table('quiz') 
       ->leftjoin('category', 'quiz.category_id', '=', 'category.id') 
       ->where('name','LIKE','$q') 
       ->select('quiz.*', 'category.name As category_name') 
       ->get(); 

    $categories = DB::table('category')->select('id', 'name')->get(); 

    return view('admin/quizlisting', ['quizzes' => $quizzes, 'categories' => $categories]); 

})->middleware('auth')->name('admin.Searchquizzes'); 
+0

先生,我需要從現有的測驗表中搜索特定的「測驗」,所以如果我錯了,我應該使用'路線::獲取'而不是後期明確。清除我的錯誤..你的解決方案給予錯誤「完整性約束1052在where子句中列'name'不明確(SQL:從'quiz'中選擇'quiz'。*,'category'.'name'作爲'category_name']在'quiz'上左連接'category'.'category_id' ='category'.'id' where'name' LIKE $ q)「這是eror語句 –

1

由我自己:)

Route::get('/admin/Searchquizzes',function (Request $request) { 
//dd($request->q); 

$quizzes = DB::table('quiz') 
      ->leftjoin('category', 'quiz.category_id', '=', 'category.id') 
      ->where('quiz.name','LIKE',$request->q) 
      ->select('quiz.*', 'category.name As category_name') 
      ->get(); 

$categories = DB::table('category')->select('id', 'name')->get(); 

return view('admin/quizlisting', ['quizzes' => $quizzes, 'categories' => $categories]); 

})->middleware('auth')->name('admin.Searchquizzes'); 

這裏是我的形式固定了它,現在我可以搜索測驗:)

<form method="get" action="{{route('admin.Searchquizzes')}}"> 
{{ csrf_field() }} 
<div class="input-group"> 
    <input type="text" name="q" id="q" class="form-control" placeholder="Search..."> 
    <span class="input-group-btn"> 
    <button type="submit" name="search" id="search-btn" class="btn btn-flat"><i class="fa fa-search"></i> 
    </button> 
    </span> 
</div> 
</form> 
相關問題