输入显示为带蛋糕形式助手的选择

时间:2011-07-29 16:01:47

标签: php cakephp select input form-helpers

我有以下代码:

<h2>Add System</h2>
<?php
echo $this->Form->create('ReleaseServer');
echo $this->Form->input('server_name',array('error'=>array(
                           0 => 'Please choose a system name'),
                          'label'=>'System Name'
            ));
echo $this->Form->input('server_id', array('label'=> 'System ID'));
echo $this->Form->select('server_environment', $environments, null, array(
                                'empty' => "-- Select an Environment --",
                                'label' => "Select an Environment",
                                'error' => array(0 => 'Please choose an environment!'),
                                'onchange'=>'console.log(this.value);'
                            )
                        );
echo $this->Form->end('Save System');
?>

由于某种原因线路 echo $this->Form->input('server_id', array('label'=> 'System ID'));
无论我放在哪里,都会显示为选择框。

如何解决此问题?

3 个答案:

答案 0 :(得分:1)

您可以尝试添加type to your options array并明确定义您希望输入的内容。

修改

在使用Cake API进行深入研究之后,我想我可能已经找到了一些特定的代码行,可能会对您产生影响。

if (preg_match('/_id$/', $fieldKey) && $options['type'] !== 'hidden') {
    $options['type'] = 'select';
}

您可能正在触发此if条件。如果是这样,您唯一的选择是在选项数组中明确设置type属性。

答案 1 :(得分:0)

现在我正在使用黑客攻击:

echo $this->Form->input('server_id', array('label'=> 'System ID',
                                           'type'=>'text'));

我明确将type设置为文字。

我不需要为其他输入执行此操作,但这可能是必须的。

答案 2 :(得分:0)

如果显示与否无关紧要,请隐藏输入。因为插入mysql时会为它分配一个新的id。

    echo $this->Form->input('server_id', array('type'=> 'hidden'));