1

使用 时$this->Form->input('fieldname'),CakePHP 创建一个标签元素,按照惯例,它使用字段名。我知道我可以为标签指定另一个字符串作为输入法的参数,但是有什么方法可以在模型中指定标签名称,所以我不必在多个ctp文件中重复标签名称(例如,所以我只需要在一个地方更改它)?

4

1 回答 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 回答