2010-03-16 82 views

回答

-1

是否要设置标签的值?这是在视图中完成的,但值当然可以源自控制器/模型。就像这样:

echo $this->Form->input('title', array(
        'label' => $titleLabel, 
        )); 

,你也可以禁用标签元素:

echo $this->Form->input('title', array(
        'label' => null, 
        )); 
2

请确保我正确理解这一点,您想在模型中设置字段标签,而不是使用表单助手?

这违反了基本的MVC架构。虽然Cake在某些方面很灵活,但我认为这不是一个可行的选择。我也不明白你为什么想这样做 - 是否有一些原因,你不想在形式助手中使用标签属性?

基本问题是表单的标签是表示层的一部分,而模型表示数据。因此,这是不可能的(我想不出有什么意义的情况)为数据字段分配一个标签,然后在输出该字段时使用该数据字段。

如果我误解了你的问题,请澄清。

-1

我建议ü直接使用助手你想.. bcos $ form-input()创建div ..标签..

我个人不得不在每一行上清除这个

与直接帮助像

$形式 - >文本() $形式 - >文本区域() $形式 - >选择()

u能保持代码干净多了。

注:$形式 - >右键使用时输入节省时间......

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'] . ': ', 
       )); 

在情况下需要特殊的标签,我作为例外处理每个案件。当然,如果你想要国际化,那是一个完全不同的话题。

相关问题