Laravel-5.8一对多关系返回null

时间:2019-06-28 20:08:05

标签: laravel laravel-5 eloquent

我有一个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_idsubregion_id

当我尝试循环赛车结果时:

    foreach ($cars as $p){
        var_dump($p->subregion);
        var_dump($p->region);
    break;
    }

对于区域,我看到结果,它不是NULL,但是没有子区域。 我肯定有,因为如果这样做:

var_dump($p);

我可以看到subregion_id,如果我使用该ID查询数据库,则会有一个子区域行。

这很奇怪,因为对于这两个区域-子区域/区域,一切都相等。

0 个答案:

没有答案