我正在尝试在 Laravel 4 中使用 Eloquent 做一些棘手的事情(至少对我而言)。为了优化页面,我需要获取位于一个或多个省份内的一种或多种类型的所有对象。现在我试图弄清楚如何使用 Eloquent 为我检索这些信息(假设它是可能的)。我认为它必须是这样的:
Object::whereIn('objectType', $objectTypeArray)->whereIn('cities.provinces.id', $provinceIdArray)->paginate(15);
那是行不通的,因为它说Unknown column 'cities.provinces.id' in 'where clause'
.
以下模型用于实现此目的:
省
class Province extends Eloquent
{
protected $table = 'provinces';
public function cities(){
return $this->hasMany('City');
}
}
城市
class City extends Eloquent
{
protected $table = 'cities';
public function province(){
return $this->belongsTo('Province');
}
public function object(){
return $this->hasMany('Object');
}
}
目的
class Object extends Eloquent
{
protected $table = 'objects';
public function city(){
return $this->belongsTo('City');
}
public function address(){
return $this->belongsTo('Address');
}
public function object_type(){
this->belongsTo('ObjectType');
}
}
对象类型
class OutgoingType extends Eloquent
{
protected $table = 'outgoing_types';
public function outgoing(){
return $this->hasMany('Object');
}
}
提前感谢您的帮助,我已经尝试了几个小时,但我似乎没有更接近正常工作的解决方案。