3

Cake で大きなフォームを作成し、inputDefaults. ただし、個々のフィールドのデフォルト値を変更したいと考えています。

フォームのデフォルトを設定する際に、私はこれについて次のように書きました。

'inputDefaults' => array(
    'error' => array(
        'attributes' => array(
            'wrap' => 'span',
            'class' => 'invalidate column-7 offset-3')));

...その結果、同様のフィールドはすべて同じエラー メッセージを生成します。しかし、単一のフィールドのデフォルトを変更しようとすると、次のようになります。

echo $this->Form->input('name', array(
    'error' => array(
        'attributes' => array(
            'wrap' => 'span',
            'class' => 'invalidate column-10'))));

うまくいきません。このフィールドは、クラスがandをname読み取るエラーを生成しますが、意図したのはです。column-7offset-3column-10

誰でも解決策を知っていますか?

4

1 に答える 1

0

$options['inputDefaults'] input() のデフォルト オプションのセットを inputDefaults キーで宣言して、デフォルトの入力作成をカスタマイズできます。

echo $this->Form->create('User', array(
    'inputDefaults' => array(
        'label' => false,
        'div' => false
    )
));

それ以降に作成されたすべての入力は、inputDefaults で宣言されたオプションを継承します。input() 呼び出しでオプションを宣言することにより、defaultOptions をオーバーライドできます。

echo $this->Form->input('password'); // No div, no label
// has a label element
echo $this->Form->input(
    'username',
    array('label' => 'Username')
);
于 2014-01-30T14:07:09.753 に答える