Каков наилучший способ предоставить значение NULL для поля ownTo в CakePHP 1.3? - PullRequest
3 голосов
/ 04 ноября 2010

У меня есть таблица под названием «пользователи», и каждый пользователь может принадлежать к одной группе, описанной в таблице под названием «категории». Примером использования является «Алиса принадлежит к Красной категории» и «Боб принадлежит к Голубой категории» и т. Д.

Я использую помощник по формам CakePHP, и на странице http://localhost/users/edit/[user_id] он сделал выпадающий список для выбора категории (используя JOIN в модели для получения названий категорий).

Но я хочу добавить опцию, чтобы выбрать NULL, потому что не все пользователи должны быть частью категории. Добавление записи NULL в таблицу «category» не будет работать, поскольку внешний ключ в таблице «users» - «category_id». Я хочу, чтобы "category_id" для пользователя, который не выбрал категорию, был NULL, а не 1, что в другой таблице равно NULL.

Извините, если это было немного бессвязно. Надеюсь, что кто-то может следовать этому достаточно, чтобы сообщить мне, есть ли способ для cakePHP сделать это, или я должен придумать другой способ сделать это.

Ответы [ 2 ]

5 голосов
/ 04 ноября 2010

Ответ @stevelove правильный, но я бы использовал следующую функцию:

$this->Form->input('category_id', array('empty'=>true, 'options'=>$categories));

Это добавит пустую опцию в поле выбора. Если вы хотите описательное имя, просто используйте "

$this->Form->input('category_id', array('empty'=>'Select category', 'options'=>$categories));
4 голосов
/ 04 ноября 2010

То есть вы просто хотите добавить опцию «Нет» в выпадающий список? Вы пытались передать пустой атрибут option?

$this->Form->select('group', $options, null, array('empty' => 'None'));
...