有没有在模型字段标签中设置的方法?我不想在表单助手中使用'label'属性。
答案 0 :(得分:2)
请确保我理解正确,你想在模型中设置字段标签,而不是使用表单助手吗?
违反了基本的MVC架构。虽然Cake在某些方面很灵活,但我认为这不是一个可能的选择。我也不明白你为什么要这样做 - 有什么理由你不想在表单助手中使用label属性吗?
基本问题是表单的标签是表示层的一部分,而模型表示数据。因此,不可能(并且我不能想到它有意义的情况......)为数据字段分配标签,然后在输出该字段时使用该标签。
如果我误解了你的问题,请澄清。
答案 1 :(得分:1)
我所做的是在我的模型中设置约定。我向所有模型添加了一个名为“fieldLabels”的公共属性,为通用表单分配默认文本标签。
示例:
class MyModel extends AppModel {
// ...
public $fieldLabels = array(
'username' => 'User name',
'email' => 'e-mail address',
'phone' => 'Phone No.',
);
// ....
}
然后我将标签传递给视图,并使用额外的参数作为输入,正如sibidiba所说:
echo $this->Form->input('title', array(
'label' => $fieldLabels['title'] . ': ',
));
如果我需要特殊标签,我会将每个案例作为例外处理。当然,如果你想要国际化,那就完全不同了。
答案 2 :(得分:-1)
您想设置标签的值吗?这在视图中完成,但当然值可以源自控制器/模型。像这样:
echo $this->Form->input('title', array(
'label' => $titleLabel,
));
你也可以禁用label元素:
echo $this->Form->input('title', array(
'label' => null,
));
答案 3 :(得分:-1)
不是100%肯定,但我认为您可能正在寻找Model::displayField
答案 4 :(得分:-1)
我建议你直接使用你想要的帮助.. bcos $ form-input()创建div ..标签..
我个人不得不在每行清除这个
直接帮助
$形式 - >文字() $形式 - > textarea的() $形式 - > select()的
你可以保持代码更清洁。
注意:$ form->输入可以在正确使用时节省时间...