Cakephp 2.0: Изменить текст выбранного элемента с помощью FormHelper без изменения идентификатора - PullRequest
0 голосов
/ 28 марта 2012

Я уверен, что это просто, но я не могу понять, как этого добиться:

У меня есть модель с колонками title и sub_title; Есть часто записи, которые имеют одинаковые title и различаются только по sub_title. Итак, мне нужны представления для команд CRUD для эффективного отображения этого:

<option>Title: Subtitle</option>

Но я не знаю, как заставить FormHelper сделать это. Может ли кто-то предоставить стратегию для общей формы этого (например:

echo $this->Form->input('title', array(
                                        //whatever option(s) solve this 
                                       ));

Решения или советы с благодарностью!

1 Ответ

1 голос
/ 28 марта 2012

Установите ваши параметры по-другому, используя класс Set:

$results = $this->Model->find('all');
$options = Set::combine($results, '{n}.Model.id', array('{0}: {1}', '{n}.Model.title', '{n}.Model.sub_title'));

Таким образом, ваш массив параметров будет выглядеть примерно так:

array(
  0 => 'Title: sub title',
  1 => 'Title: different sub'
);

И установитеваше раскрывающееся меню, чтобы использовать эти параметры

$this->Form->input('title', array('options' => $options));
...