Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 拉威尔口若悬河,其中与何处有着内在的关系_Php_Laravel_Eloquent - Fatal编程技术网

Php 拉威尔口若悬河,其中与何处有着内在的关系

Php 拉威尔口若悬河,其中与何处有着内在的关系,php,laravel,eloquent,Php,Laravel,Eloquent,我的关系结构如下: 这个地方有很多服务 服务属于服务类型 我试图按服务类型对其进行筛选,但在尝试各种类型时总是会出现一个错误,即表或视图不存在 $place = Place::with('services.serviceTypes')->whereIn('id', $ids) ->where('services.serviceTypes.id', $id)->get(); 或 返回相同的异常 型号: 地点: namespace App; use Illuminate\Data

我的关系结构如下:

这个地方有很多服务 服务属于服务类型

我试图按服务类型对其进行筛选,但在尝试各种类型时总是会出现一个错误,即表或视图不存在

$place = Place::with('services.serviceTypes')->whereIn('id', $ids)
->where('services.serviceTypes.id', $id)->get();

返回相同的异常

型号:

地点:
namespace App;
use Illuminate\Database\Eloquent\Model;

class Place extends Model {  

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

}
服务:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Service extends Model {

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


}
服务类型:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class ServiceType extends Model {

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

感谢

要查询关系,您需要使用可用于查询关系的特定功能。您正在寻找whereHas方法


您可以阅读更多信息。

请发布包含关系定义的代码。
<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class ServiceType extends Model {

    public function services() {
      return $this->hasMany('App\Service');
    }
}
$place = Place::with('services.serviceTypes')
    ->whereIn('id', $ids)
    ->whereHas('services.serviceTypes', function ($query) use ($id) {
        return $query->where('id', $id);
    })
    ->get();