Итак, у меня есть эта структура БД:
СТРАНИЦЫ
id - integer
name - string
СТРОК
id - integer
page_id - integer
name - string
КОМПОНЕНТОВ
id - integer
row_id - integer
name - string
СТРАНИЦ имеет много строки у каждой строки есть много КОМПОНЕНТОВ
Модель моей страницы имеет:
public function rows() {
return $this->hasMany('Models\Rows');
}
У моей модели строк
public function page()
{
return $this->belongsTo('Models\Page');
}
public function components() {
return $this->hasMany('Models\Components');
}
И у моей модели компонентов
public function rows()
{
return $this->belongsTo('Models\Rows');
}
Так что на данный момент у меня есть 2-х шаговый метод, чтобы получить все компоненты в странице / строке.
Сначала я нахожу строки:
$rows = PageModel::find(2)->rows;
, затем перебираю $ строки и нахожу компоненты.
Но разве это не способ сделать это более эффективным?