使用路线而不是控制器在Laravel中搜索

时间:2017-08-29 08:56:11

标签: php laravel search routes

这是我的Laravel路线,我从中获得了价值,因为' q'从表单执行测验表中的搜索。

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 Form执行搜索的代码。     

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

这不起作用我不知道为什么,应该感谢帮助。

2 个答案:

答案 0 :(得分: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');

这是我的表格,现在我可以搜索quizes:)

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

答案 1 :(得分:0)

你没有获得那种形式的价值。您没有使用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');