CakePHP自定义选择框输入的值

3

我想创建一个下拉选择框,但是我希望手动设置每个选项的值。

我尝试了以下方法:

echo $this->Form->input('field', array(
    'options' => array('Active', 'Blocked', 'Pending', 'Unknown'),
    'values' => array(1,2,0,99),
    'empty' => '(choose one)'
));

然而这并没有起到作用(例如,“Active”是0,“Blocked”是1等)

有人知道是否可以手动设置这些值吗?

2个回答

7

values 不是正确的键,您需要利用 options 数组:

'options' => array(1 => 'Active', 2 => 'Blocked', 0 => 'Pending', 99 => 'Unknown'),

但这是基本的PHP(因为未定义的键从0开始按数字索引)。

2
您需要使用关联数组来设置键(key):
$options = array(
    '1' => 'Active',
    '2' => 'Blocked',
    '0' => 'Pending',
    '99' => 'Unknown'
);
echo $this->Form->input('field', array('options' => $options));

然而,我建议将这样的选项存储在单独的数据库表中,而不是硬编码它们,以保持视图DRY并允许将来轻松修改它们。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接