3

選択入力フィールドを作成しようとしています。ただし、個々のオプションの値を手動で設定したいと考えています。

試みとして、私は次のことを試しました:

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

ただし、これは役に立ちませんでした (つまり、「アクティブ」が 0、「ブロック済み」が 1 など)。

値を手動で設定できるかどうかは誰にもわかりませんか?

4

2 に答える 2

7

values は適切なキーではありません。オプション配列も活用する必要があります。

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

ただし、これは基本的な PHP です (未定義のキーは 0 から始まる数値でインデックス付けされるため)。

于 2013-10-04T09:39:29.323 に答える
2

キーを設定するには、連想配列も使用する必要があります。

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

ただし、ビューをDRYに保ち、将来簡単に変更できるようにするために、このようなオプションをハードコーディングするのではなく、別のデータベース テーブルに格納することをお勧めします。

于 2013-10-04T11:06:10.423 に答える