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();