Intereting Posts

Laravel 4 удаление нескольких моделей, связанных с внешними ключами

Таким образом, у меня есть три модели, и когда один из них dAgency удаляется delete-() мне бы хотелось, чтобы все три были удалены. Проблема в том, что два из них удаляются, а верхний родительский DemDataSet не удаляется. Кроме того, когда я звоню:

echo "<pre>", dd(dAgency::find(21)->DemographicReport()->DemDataSet()->get()), "</pre>";

Я получаю эту ошибку: Call to undefined method Illuminate\Database\Query\Builder::DemDataSet() Но когда я пытаюсь:

echo "<pre>", dd(dAgency::find(21)->DemographicReport()->get()), "</pre>";

Оно работает. Поэтому я знаю, что проблема заключается в моей связи между моей моделью DemDataSet. Ниже приведена моя модель:

 <?php class DemDataSet extends Eloquent { public $timestamps = false; protected $connection = 'epcr_dem_data'; protected $table = 'DEMDataSet'; protected $primaryKey = 'pk_DEMDataSet'; public function DemographicReport(){ return $this->hasOne('DemographicReport','fk_DEMDataSet','pk_DEMDataSet'); } } class DemographicReport extends Eloquent { public $timestamps = false; protected $connection = 'epcr_dem_data'; protected $table = 'DemographicReport'; protected $primaryKey = 'pk_DemographicReport'; public function DemDataSet (){ return $this->belongsTo('DemDataSet','fk_DEMDataSet','pk_DEMDataSet'); } public function dAgency(){ return $this->hasOne('dAgency','fk_DemographicReport','pk_DemographicReport'); } public function delete(){ parent::delete(); return $this->DemDataSet()->delete(); } } class dAgency extends Eloquent { public $timestamps = false; protected $connection = 'epcr_dem_data'; protected $table = 'dAgency'; protected $primaryKey = 'pk_dAgency'; public function DemographicReport(){ return $this->belongsTo('DemographicReport','fk_DemographicReport','pk_DemographicReport'); } public function dAgency_10(){ return $this->hasMany('dAgency_10','fk_dAgency','pk_dAgency'); } public function delete(){ parent::delete(); return $this->DemographicReport->delete(); } } ?> 

Я боролся с этим уже два дня! Я очень ценю, что вы нашли время, чтобы посмотреть на это.