Данные HABTM не сохраняются (cakephp)
-
21-09-2019 - |
Вопрос
У меня есть две модели, связанные с HABTM (документы и люди).
class Person extends AppModel {
var $name = 'Person';
var $hasAndBelongsToMany = array(
'Document' => array(
'className' => 'Document',
'joinTable' => 'documents_people',
'foreignKey' => 'person_id',
'associationForeignKey' => 'document_id',
'unique' => false
)
);
class Document extends AppModel {
var $name = 'Document';
var $hasAndBelongsToMany = array(
'Person'=>array(
'className' => 'Person',
'joinTable' => 'documents_people',
'foreignKey' => 'document_id',
'associationForeignKey' => 'person_id',
'unique' => false
)
);
У меня есть представление добавления документов, заполненное одним флажком для каждого человека, который будет связан с документом.
echo $form->input('People', array('type'=>'select', 'multiple'=>'checkbox', 'options'=>$people, 'label' => 'People: '));
Это строка от контроллера, который должен выполнять сохранение.
$this->Document->create();
if ($this->Document->saveAll($this->data)) {
Я заметил, что данные не сохраняются в таблице document_people.Итак, я сбросил $this->data.
Часть документа выглядит следующим образом:
[Document] => Array
(
[file_name] => asdasd
[tags] => habtm
[People] => Array
(
[0] => 6
[1] => 12
[2] => 15
)
[image] => img/docs/2009-11-19-233059Jack.jpg
)
Это идентификаторы людей, которых я хочу связать с этим документом.Однако в document_people ничего не передается.Что я сделал не так?
Решение
Возможно, ваш $this->data
массив должен иметь раздел «Человек», а не «Люди» во множественном числе.
Попытался ли ты...
echo $form->input('Person'.....
Не связан с StackOverflow