使用关系雄辩的laravel搜索时如何获取数据

时间:2018-07-08 17:37:06

标签: php laravel laravel-5.6

如何在雄辩的laravel中获得价值关系

这是我的模特食物

class food extends Model 
{ 
  protected $table = 'food';
  protected $fillable = [
        'name'
   ];
  public function foodType()
    {
        return $this->belongsTo(Food_type::class, 'food_type_id');
    }
}

这是我的food_type模型

class food_type extends Model
{
    protected $table = 'food_type';
    protected $fillable = [
        'name', 'description'
    ];

    public function getFood()
    {
        return $this->hasMany(Food::class);
    }
}

我想在food_type表中获得food_type.name。如何查询

$search = $request->search
$food = Food::with(['foodType'])
                ->where('name', 'like', '%'.$search.'%')
                ->orWhere('foodType.name', 'like', '%'.$search.'%')->get();

1 个答案:

答案 0 :(得分:0)

当您使用紧急加载时,关系不包含在联接中。回顾documentation,因为它涵盖了如何使用whereHas和其他与关系相关的方法。

$food = Food::with(['foodType'])
                ->where('name', 'like', '%'.$search.'%')
                ->orWhereHas('foodType' function($q) {
                      $q->where('name', 'like', '%'.$search.'%');
                })
                ->get();