CakePHP:模型中的字段标签

时间:2010-03-16 14:45:01

标签: cakephp model

有没有在模型字段标签中设置的方法?我不想在表单助手中使用'label'属性。

5 个答案:

答案 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->输入可以在正确使用时节省时间...