список выбора CakePHP, показывающий идентификаторы вместо текста - PullRequest
5 голосов
/ 02 июня 2011

Я использую CakePHP 1.3 для создания формы. Я создаю список выбора, используя отношение hasOne и serveTo.

my models: image, category

Категория hasMany image

.таблица категорий имеет два столбца id and category_name

я делаю

$this->set('categories', 
           $this->Image->Category->find(
                                        'list',
                                         array( 'order' => 'category_name ASC' )
                                       )
          ); //to generate the select list

Пока все хорошо, остается только одна проблема, сгенерированный список выбора показывает идентификатор категории вместоимя_категории как текст опции, я знаю, что это не ошибка cakePHP, но мне нужно знать решение

любая помощь, пожалуйста.

PS Если мне неясно вопрос, пожалуйста, дайте мне знать1018 *

Ответы [ 2 ]

6 голосов
/ 02 июня 2011

Вам необходимо определить свойство displayField в вашей модели категории, чтобы CakePHP мог правильно определить, какое поле отображать в качестве метки. Этот код в вашей модели категории исправит это для вас:

var $displayField = 'category_name';

Либо переименуйте поле category_name в «name» или «title» (я бы сделал это, очевидно, что поле «name» в таблице категорий будет именем категории).

2 голосов
/ 02 июня 2011

Если есть сомнения, прочитайте руководство:

3.7.3.1.4 find ('list')

При вызове find ('list')) переданные поля используются для определения того, что следует использовать в качестве ключа массива, значения и, по выбору, для группировки результатов.По умолчанию первичный ключ для модели используется для ключа, а поле отображения (которое можно настроить с помощью атрибута модели displayField) используется для значения.

...