从select cakephp获取多个值时出错

时间:2016-05-03 10:44:07

标签: cakephp-3.0 multiple-select multipleselection

我正在尝试获取多个值,以便将它们存储在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
)

有任何帮助吗? 非常感谢

1 个答案:

答案 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
    ]); ?>