CakePHP标签惯例

时间:2012-06-14 02:08:45

标签: cakephp conventions

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

1 个答案:

答案 0 :(得分:2)

所以我创建了这个并进行了快速测试,但是,不能保证它没有bug:

<?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结构的模型中。 希望它有效。