使用搜索词“ q”

时间:2019-08-20 12:03:42

标签: sql laravel eloquent

我有两个桌子的食物表和餐厅表,它们都与餐厅ID相关联

这是食物模型中的关系

public function restaurant(){
    return $this->belongsTo('App\Restaurant');
 }

这是食物表

$table->bigIncrements('id');
            $table->timestamps();
            $table->integer('price');
            $table->integer('food_item');
            $table->integer('restaurant_id');

这是餐厅模型中的关系

public function foods(){
    return $this->hasMany('App\Food');
}

当用户输入输入q作为食品的搜索项时,我需要它来生成所有根据搜索项搜索该食品的餐厅

这是我写的查询,但是当我返回json_encode($ foodsAll);时返回0个结果;

 public function search(Request $request){
        $foodsAll = Restaurant::whereHas('foods',function($query) use ($request){
            $query->where('food_item','like','%'.$request->q.'%');
        });


    }

1 个答案:

答案 0 :(得分:0)

您缺少get()。

public function search(Request $request){
        $foodsAll = Restaurant::whereHas('foods',function($query) use ($request){
            $query->where('food_item','like','%'.$request->q.'%');
        })->get();
    }