Laravel - 5.8 отношение один ко многим возвращает ноль - PullRequest
1 голос
/ 28 июня 2019

У меня есть 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, и если я сделаю запрос к базе данных с этим идентификатором, будет строка субрегиона.

Странно, потому что для этих двоих все одинаково - субрегион / регион.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...