如何在Laravel中查询模型及其相关模型

时间:2019-02-27 10:28:54

标签: laravel-5 eloquent

我正在构建一个Laravel 5.5项目,其中有2个相关模型,即用户和服务,它们之间的关系如下: 内部User.php

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

和在Service.php内部

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

我需要在服务模型中查询服务列,其中查询是service_name或用户名。实际上,查询将在服务模型和相关的用户模型中搜索项目。 我在下面编写了查询,但是返回了一个空集合:

$items = Service::where('service_name', 'LIKE', "%".$query."%")
                 ->whereHas('user', function($q) use ($query){
                  $q->where('name', 'LIKE', "%".$query."%");))->get();

我在做什么错了?

NB:我在Google上搜索,stackoverflow和laravel文档没有完全提供我需要的内容,因此请问我的问题。

1 个答案:

答案 0 :(得分:1)

将“ whereHas()”更改为“ OrWhereHas()”。