2014-12-01 2 views
0

Я пытаюсь сохранить форму, которая имеет много-много отношений в CakePHP3, но я не могу отобразить форму правильно. (пользователь HABTM теги)CakePHP3 От многих до многих отношений

В моем контроллере я установить объект, который я хочу изменить:

$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' 
]); 

Моя проблема на нагрузке выбранный теги не проверяются, как я могу это решить?

ответ

1

Для такой ассоциации belongsToMany вы должны использовать ключ _ids в полеnamename, в этом случае хелпер формы может магически подбирать значения и проверять свои боксы.

$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' 
]); 

Смотри также Cookbook > Finding Key/Value Pairs

+0

Да, магия срабатывала, когда я добавлял теги._ids как имя спасибо! – user1521944