在'multiple'=>上使用自动形式帮助器更改单个标签“复选框”

时间:2011-07-03 15:30:51

标签: cakephp cakephp-1.3

我在添加/编辑课程视图中有以下行:

echo $this->Form->input(
    'Competency', 
    array(
        'label' => 'Which competencies does this course address?', 
        'multiple' => 'checkbox'
    )
);

(建模为课程有很多能力)

我想自定义为每种能力获得输出的标签,但似乎无法找到这样做的方式 - “标签”字段似乎可以作为组标题而不是更改个人的标签复选框。

(理想情况下,我不仅仅是显示Competency.name,我可以显示Competency.name以及Competency.code作为标签)

NB我想过改变displayField但是这会改变它到处都只是在这里我想要与众不同。

1 个答案:

答案 0 :(得分:1)

创建virtual field [details]

//in your Competency model
var $virtualFields = array(
    'name_code' => 'CONCAT(Competency.name, " ", Competency.code)'
);

然后在您的控制器中,在检索数据之前,将displayField设置为刚刚创建的虚拟字段:

//in your controller prior to the find
$this->Competency->displayField = 'name_code';

由于您在控制器中设置了displayField,因此不会将其永久设置,因此无需将其设置回来,但如果您在此之后立即执行更多操作,则可以始终设置回{{1如果你想要的话。