我正在使用 cakephp 3 并使用 Form->input() 并且需要传递一组选项。
我的数组如下所示:
$options=['option1', 'option2', 'option3'];
我需要这些选项的值与标签相同。问题是,cakephp 使用数组索引作为值。因此,如果有人选择 option1,值将变为 0。我需要该值为 option1。
编辑:
现在,我已将数组更改为如下所示:
$options=['option1'=>'option1', 'option2'=>'option2', 'option3'=>'option3'];
确实可行,但还是出于好奇,还有其他方法吗?
最佳答案
试试这个:
在 Controller 中
$options = $this->YourModel->find('list', ['keyField' => 'name', 'valueField' => 'name']);
$this->set(compact('options'));
More info about Finding Key/Value Pairs
在 View 中
<?= $this->Form->input('field', ['options' => $options ,'label' => 'Fields']); ?>
或
<?= $this->Form->select('field', $options); ?>
关于php - Cakephp 表单输入与数组选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457160/