私はこの問題をlaravelの 'eager loading'としています。Laravel eager loading 4 tables
お互いに関連する4つのテーブルを扱っています。
私は、これらのモーダルています
<?php
class AgendaPersonalModel extends Model
{
protected $table = 'agenda_personal';
public function periods() {
return $this->hasMany(AgendaPersonalPeriodModel::class, 'agenda_id');
}
}
?>
class AgendaPersonalPeriodModel extends Model
{
protected $table = 'agenda_personal_period';
public function weekdays() {
return $this->hasMany(AgendaPersonalWeekdaysModel::class, 'period_id');
}
<?php
class AgendaPersonalWeekdaysModel extends Model
{
protected $table = 'agenda_personal_weekdays';
public function breaks() {
return $this->hasMany(AgendaPersonalBreakModel::class, 'weekday_id');
}
}
?>
<?php
class AgendaPersonalBreakModel extends Model
{
protected $table = 'agenda_personal_breaks';
}
?>
は今、私は1つのオブジェクト内のすべてのデータを '取得' したいと思います。
私はこれを行うとき:
$agendaTest = AgendaPersonalModel::with(array('periods', 'periods.weekdays'))->where('id', 1)->first();
をそれはPERFECT
に動作しますが、私はこれを行うとき:
(1/1) RelationNotFoundException
Call to undefined relationship [weekdays] on model [App\Models\AgendaPersonalModel].
in RelationNotFoundException.php (line 20)
を行うことができますAgendaPersonalModel' 'で定義された平日の関係を持っていますか?それとも、「期間。週末。ブレーク」をすることを意味しましたか? – Josh
彼はジョシュ、それは行うために降りる: 'periods.weekdays.breaks' –