我有一个Cars
模型,它属于另外两个模型Region, Subregion
。
汽车型号:
function region(){
return $this->belongsTo('App\Models\Region');
}
function subRegion(){
return $this->belongsTo('App\Models\Subregion');
}
次区域模型:
class Subregion extends Model{
public $timestamps = false;
protected $fillable = [
'name'
];
public function cars(){
return $this->hasMany('App\Models\Car');
}
}
地区:
class Region extends Model{
public $timestamps = false;
protected $fillable = [
'name'
];
public function cars(){
return $this->hasMany('App\Models\Car');
}
}
我有一个查询,该查询选择具有其区域和子区域的汽车:
$queryCar= Car::with(array(
'region'=>function($query){
$query->select(['id', 'name']);
},
'subregion'=>function($query){
$query->select(['id', 'name']);
}
))->orderBy('id', 'DESC');
return $queryCar->get();
表cars
具有列region_id
,subregion_id
。
当我尝试循环赛车结果时:
foreach ($cars as $p){
var_dump($p->subregion);
var_dump($p->region);
break;
}
对于区域,我看到结果,它不是NULL,但是没有子区域。 我肯定有,因为如果这样做:
var_dump($p);
我可以看到subregion_id
,如果我使用该ID查询数据库,则会有一个子区域行。
这很奇怪,因为对于这两个区域-子区域/区域,一切都相等。