Объект Page
имеет любое количество Widgets
, и каждая пара Page-Widget
имеет специальные опции (например, положение, пользовательское название).Laravel: принадлежитToMany с дополнительными полями
Я только что сделал
class Page extends Model {
public function widgets(){
return $this->belongsToMany('App\Widget');
}
}
...
class Widget extends Model {
}
Я добавил несколько столбцов в таблице page_widget
(положение, настройки ...).
Как я могу получить/обновить их через $page->widget->position
? Мне также нужна возможность получить виджеты страниц, отсортированные по этому значению position
.
Просьба предложить типовые отношения. Благодарю.
Предполагая, что у вас есть отношения «многие-ко-многим», у вас есть сводная таблица под названием 'pages_widget'. Вы можете добавить столбцы в эту таблицу и получить доступ к значениям с помощью 'pivot'. Взгляните на заключительную часть от многих до многих отношений (а именно на получение промежуточных столбцов таблицы), на [docs] (https://laravel.com/docs/5.1/eloquent-relationships) –
Просто добавьте комментарий @milz. A_pivot table_ - это просто таблица _join_, которая содержит дополнительные столбцы (например, вашу «позицию»). – Michael