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