を使用する場合$this->Form->input('fieldname')
、CakePHP は慣例によりフィールド名を使用する label 要素を作成します。ctp
入力メソッドへの引数としてラベルに使用する別の文字列を指定できることはわかっていますが、モデルでラベル名を指定できる方法はないので、複数のファイルでラベル名を繰り返す必要はありません(たとえば、1 か所で変更するだけで済みます)。
質問する
119 次
1 に答える
2
だから私はこれを作成して簡単なテストを行いましたが、バグがないことを保証することはできません:
<?php
App::uses('FormHelper', 'View/Helper');
class MyFormHelper extends FormHelper {
public function label($fieldName = null, $text = null, $options = array()) {
if ($text === null) {
$entity = $this->entity();
$field = array_pop($entity);
$model = $this->model();
$object = $this->_models[$model];
if (isset($object->labels[$field])) {
$text = $object->labels[$field];
}
}
return parent::label($fieldName, $text, $options);
}
}
それをapp/View / Helper/MyFormHelper.phpにドロップします
ヘルパー配列に追加し、必要に応じてエイリアスを作成します。
public $labels
構造を持つモデルに配列を追加しfield => label-text
ます。それがうまくいくことを願っています。
于 2012-06-14T06:43:30.127 に答える