Измените отдельные метки с помощью автоматического помощника по форме, установив флажок 'множественные' => ' - PullRequest
0 голосов
/ 03 июля 2011

У меня есть следующая строка в моих представлениях добавления / редактирования курса:

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

(смоделировано как курс имеет много компетенций)

Я бы хотел настроить метку, которая будет выводиться длякаждая компетенция, но, кажется, не может найти способ сделать это - поле «метка», кажется, работает как заголовок группы, а не меняет метку для отдельных флажков.

(Что я в идеале послевместо того, чтобы просто отображать Competency.name я могу отображать Competency.name плюс Competency.code в качестве метки)

NB Я думал об изменении displayField, но это изменило бы его везде, и это только здесь, я хотел быбыть другим.

1 Ответ

1 голос
/ 03 июля 2011

Создайте виртуальное поле [подробнее] :

//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 в контроллере, он не устанавливает его постоянно, поэтому нет необходимости устанавливать его обратно, но если вы делаете больше операций поиска сразу после этого, вы всегда можете вернуться кname если хочешь.

...