【问题标题】:search function in LaravelLaravel 中的搜索功能
【发布时间】:2016-08-16 22:35:55
【问题描述】:

我正在尝试在 laravel 中创建搜索功能。但它显示:

“未定义变量:q”

虽然我定义了变量。我不知道我在哪里犯了错误。我需要帮助。

这是我的控制器代码:

public function postSearch(Request $request)
{
         $q = $request->input('q');
    $products = DB::table('products')
                        ->join('product_categories', function ($join) {
                            $join->on('category_id', '=', 'product_categories.id')
                                ->where('name','LIKE','%'.$q.'%')->orWhere('category_name','LIKE','%'.$q.'%');
                            })->get();
    if(count($products) > 0)
        return view('search')->withDetails($products)->withQuery ( $q );
    else return view ('search')->withMessage('No Details found. Try to search again !');
}

这是我的路线:

Route::post('/search',[
   'uses' => 'HomeController@postSearch',
   'as' => 'search'
]);`

这是我的视图表单:

<form action="{{ route('search') }}" method="post" role="search">
    {{ csrf_field() }}
    <div class="input-group">
        <input type="text" class="form-control" name="q" placeholder="Search    products"> 
        <span class="glyphicon glyphicon-search"></span>
            <button type="submit" class="btn-btn-primary">Submit</button>
        </span>
    </div>
</form>

【问题讨论】:

    标签: search laravel-5.2


    【解决方案1】:

    更改以下代码:

    ->join('product_categories', function ($join) { 
    

    到此代码:

    ->join('product_categories', function ($join) use ($q) {
    

    注意:在声明要传递的变量之前,不能在其中使用外部变量。

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 2016-09-15
      • 2017-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-21
      • 2020-11-29
      • 1970-01-01
      相关资源
      最近更新 更多