2

モデルに対応する入力フィールドを作成するには、これを使用できます。

cakephp $this->Form->input('Model.field');

名前を変更するには、次を使用できます

cakephp $this->Form->input('Model.field', array('label' => __('new field name')));

しかし、巨大なアプリケーションがあり、各フィールドの名前を何度も変更したくないと考えてください。この質問は何度も聞かれますが、常にこの初心者の質問に私が与えた解決策で答えてください. しかし、CakePHP にはもっと洗練された方法が必要です... Translate Behavior で回避策を構築できると思います。これが最善の方法ですか?

4

2 に答える 2

1

あなたが示す方法は、CakePHPで行われる方法です。フィールド名は、モデル内の名前に対応している必要があります。名前が気に入らない場合は、いつでもモデル内の名前を変更して、フォームに表示したいものを表すことができます。それ以外の場合は、示されているようにラベル フィールドを使用する必要があります。

別の方法があるかもしれないと思います。フォーム ヘルパーをオーバーライドして、翻訳を行うことができます。ただし、名前に基づいてラベルを動的に挿入するために、大量のフォーム名の配列を管理することになります。ただし、これはラベルを変更するためだけに多くの余分な作業のように思えます。

于 2013-01-18T16:29:27.787 に答える
0

入力要素のラベルは、データベーステーブルとモデルフィールドのフィールド名によって異なります。したがって、ユーザーのテーブルとユーザーモデルにフィールドusernameがあると仮定します。

echo $this->Form->input('User.username');

出力します

<input type="text" label="Username" ... />

したがって、ユーザーテーブルとモデルのフィールドを変更して、フォーム要素に必要なラベルを取得します。

于 2013-01-19T05:30:50.283 に答える