У меня есть 3 таблицы: books
, categories
и book_category
.
book_category
- таблица перекрестных ссылок.У него есть такая структура: book_id, category_id
Мне нужно вывести категории (в виде флажков) на странице создания модели книги.Это работает, если я делаю это так:
// Book Model
public function getCategoriesOptions($value, $formData)
{
$categories = Category::all();
$list = array();
foreach ($categories as $category) {
$list[$category->id] = $category->name;
}
return $list;
}
Но категории, проверенные при создании , не проверяются в Preview, Update pages.В таблице book_category
все отмеченные категории сохраняются.Думаю, проблема в отношениях.
Я создал модель для таблицы book_category
.В результате появилось 3 модели: Book, Category, BookCategory
.Как реализовать отношения между ними?
Очевидно, что Book
может иметь много категорий, поэтому в модели Book
я написал:
public $hasMany = [
'categories' => 'mark\myplugin\Models\Category'
];
BookCategory
, потому что книга связана с категориейдо book_category
таблицы.Но как быть с другими моделями?