Я пытаюсь сохранить форму, которая имеет отношение ко многим в CakePHP3, но я не могу правильно отрисовать форму. (пользовательские теги HABTM)
В моем контроллере я установил объект, который я хочу редактировать:
$user = $this->Users->get($id, [
'contain' => ['Tags']
]);
$this->set(compact('user'));
По мнению у меня есть:
$options = [
'1' => 'Tag 1',
'2' => 'Tag 2'
];
echo $this->Form->select('tags', $options, [
'multiple' => 'checkbox'
]);
У меня проблема с нагрузкой, выбранные теги не проверяются, как я могу решить эту проблему?
Для такого belongsToMany
ассоциация вы должны использовать _ids
введите имя поля, чтобы помощник формы мог волшебным образом подобрать значения и поставить галочки.
$this->Form->select('tags._ids', /* ... */);
Увидеть
для некоторой информации.
Также вам следует извлечь список тегов из таблицы, а не определять их вручную в представлении.
контроллер
// ...
$tags = $this->Users->Tags->find('list');
$this->set(compact('user', 'tags'));
Посмотреть
echo $this->Form->select('tags._ids', $tags, [
'multiple' => 'checkbox'
]);
Смотрите также Кулинарная книга> Поиск пары ключ / значение
Других решений пока нет …