我正在尝试获取多个值,以便将它们存储在cakephp 3.x中的数据库中,但是我无法获得我选择的所有值。只有一个。
在我看来:
<select name="internalDestinations[ids]" id="internalDestinations-ids" multiple="true" class="...">
<?php
foreach ($users2 as $i): ?>
<option value="<?= $i['email'] ?>"> <?= $i['email'] ?> </option>
<?php endforeach;
?>
</select>
在我的控制器中:
if($this->request->is('post')){
$alarm->internalDestinations=$this->request->data['internalDestinations']['ids'];
$this->log($this->request->data['internalDestinations']);
}
在我的输入中选择多个项目,我只得到一个:
Array
(
[ids] => xxxxxxx@xxxxx.xxx
)
有任何帮助吗? 非常感谢
答案 0 :(得分:1)
你可以简单地做
name="internalDestinations[ids][]"
但为什么不使用FormHelper
?
//first of all let's create an array with email both in the keys and in the values
$users3 = Cake\Utility\Hash::combine($users2, '{n}.email', '{n}.email');
// then let's use cake dotted notation to create arrays
<?= $this->Form->input('internalDestinations.ids', [
'type' => 'select',
'multiple' => true,
'options' => $users3
]); ?>