0

私は次のコードを持っています:

<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'));
どこに置いても選択ボックスとして表示されます。

これを解決するにはどうすればよいですか?

4

3 に答える 3

1

typeoptions 配列に追加して、入力をどうしたいかを明示的に定義してみてください。

編集

Cake API を掘り下げた後、ここに影響を与えている可能性のある特定のコード行を見つけたのではないかと思います。

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

このif条件をトリガーしているようです。その場合、唯一のオプションはtype、オプション配列で属性を明示的に設定することです。

于 2011-07-29T16:10:30.727 に答える
0

現在、私はハックを使用しています:

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

をテキストとして明示的に設定してtypeいます。

他の入力についてはそうする必要はありませんが、そうしなければならない方法かもしれません。

于 2011-07-29T16:10:41.740 に答える
0

表示するかどうかが問題でない場合は、入力を非表示にします。mysql を挿入すると、新しい ID が割り当てられます。

    echo $this->Form->input('server_id', array('type'=> 'hidden'));
于 2011-07-29T16:11:33.490 に答える