CakePHP:多选输入数据插入数据库

CakePHP : Multiselect input data insert into database

我的Multiselect输入密码是

<?php echo $this->Form->input('Dispensary.role.',array('options'=>$dispensary_users,'class'=>'form-control dispensary_users_dd','label'=>false,'style'=>'width:300px;','empty'=>'Select Users'));
?>

并生成 html 代码:

<select name="data[Dispensary][role][]" class="form-control dispensary_users_dd" style="width: 300px; display: none;" id="DispensaryRole">
  <option value="">Select Users</option>
  <option value="9">Yashobanta</option>
  <option value="80">Yash</option>
  <option value="83">Ramesh</option>
</select>

但是当我 select 所有用户,并且 print_r($this->data); returns 最后 select 次输入。 但是我要全部。

我不知道 $this->Form->input(...); 的那个东西是怎么工作的,因为它不重要。没有 multiple 属性,您只能 select 一种意见。

示例w3schools.org:

<select name="cars" multiple>
  <option value="volvo">Volvo</option>
  <option value="saab">Saab</option>
  <option value="opel">Opel</option>
  <option value="audi">Audi</option>
</select>

我忘了添加 multiple => true

为了在数据库中保存多个 select 值,使用 implode 函数存储数组。

在控制器中:

if (!empty($this->data)) {
    $this->data['Category']['name'] = implode(",",$this->data['Category']['name']);
       $this->Category->create();
       $this->Category->save($this->data);
}

希望对您有所帮助:)