CakePHP3多对多关系

CakePHP3多对多关系,php,cakephp,many-to-many,cakephp-3.0,Php,Cakephp,Many To Many,Cakephp 3.0,我试图保存一个在CakePHP3中具有多对多关系的表单,但我无法正确地呈现该表单。(用户标签) 在控制器中,我设置了要编辑的对象: $user = $this->Users->get($id, [ 'contain' => ['Tags'] ]); $this->set(compact('user')); 我认为: $options = [ '1' => 'Tag 1', '2' => 'Tag 2' ]; echo $this-&g

我试图保存一个在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'
]);

我的问题是加载时未选中所选标记,我如何解决此问题?

对于这种
归属关联,您应该使用字段名中的
\u id
键,这样表单助手可以神奇地拾取值并选中您的框

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

另请参见

以了解此类
关联,您应该使用字段名中的
\u id
键,这样表单帮助器可以神奇地拾取值并选中您的框

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

另请参见

以了解此类
关联,您应该使用字段名中的
\u id
键,这样表单帮助器可以神奇地拾取值并选中您的框

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

另请参见

以了解此类
关联,您应该使用字段名中的
\u id
键,这样表单帮助器可以神奇地拾取值并选中您的框

$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'
]);
另请参见