php - Cakephp 表单输入与数组选项

标签 php cakephp cakephp-3.0

我正在使用 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); ?>

More info about FormHelper

关于php - Cakephp 表单输入与数组选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41457160/

相关文章:

php - 用户的计算机名称以及 IP 地址

php - 在 Laravel 表单中使用 PUT 和 DELETE 方法时出现 MethodNotAllowedHttpException

php - PHP 应用程序中缺少数据库连接错误

php - mysql_query SELECT 给我带来麻烦

php - Cakephp:使用一个命令字段将多个记录添加到单个模型

cakephp - 使用 CakePHP 进行 cron 作业

php - Cakephp 3 表单,插入 FOREIGN KEY

php - Cakephp 3 - 如何在验证过程中检索 'Table' 类中的当前登录用户?

php - 如何显示2个不同日期范围的数据