Привет, есть следующие модели:
class Page extends Model {
protected $with = ['blocks'];
public function blocks() {
return $this->belongsToMany('App\Block');
}
}
class Block extends Model {
protected $with = ['fields'];
public function fields() {
return $this->hasMany('App\Fields');
}
}
class Field extends Model {
protected $with = ['data'];
public function data() {
return $this->hasOne('\App\Data');
}
}
И есть контроллер в котором я выбираю данные:
public function get() {
$page_id = 1;
$data = Page::find($page_id);
}
В результате получаю такую структуру:
Страница
- Блок 1
- Поле 1
- Тестовые данные
- Поле 2
- Еще данные
- Блок 2
- Поле 1
- Другие данные
Блок может принадлежать нескольким страницам.
Конкретное поле принадлежит конкретному блоку.
А вот данные, хранящиеся в этом поле должны быть
привязаны к полю и к странице одновременно.
То есть мне нужо передать в функцию data() модели Field переменную $page_id
Что бы в результате получилось примерно так:
public function data() {
return $this->hasOne('\App\Data')->where('page_id', '=', $page_id);
}
Подскажите, пожалуйста, как это сделать?