Хранение выпадающих значений в БД с использованием Cake - PullRequest
0 голосов
/ 14 февраля 2012

У меня есть две таблицы:

  1. контакты
  2. фонетические типы

В своем действии добавления я заполняю раскрывающийся список из таблицы phonetypes(который имеет только 1 столбец, а именно phone_type).

Моя contacts таблица содержит поля: l_name, f_name, phone_type и number.

У меня есть раскрывающееся поле displayField как phone_type.Основываясь на выборе в раскрывающемся списке, я пытаюсь вставить поле phone_types в таблицу contacts, но оно вставляет идентификатор из таблицы phonetypes.Но я хочу вставить значения, а не идентификатор ...

Любая помощь приветствуется.

Код моего просмотра:

    echo $this->Form->create('Contact');
echo $this->Form->input('last_name', array('type'=>'text', 'size'=>10));
echo $this->Form->input('first_name');
echo $this->Form->select('phonetypes.phone_type',array('phone_type'=>'phone_type','options'=>$phone_type,'default'=>'phone_type'));
echo $this->Form->input('phone_number');
echo $this->Form->end('Save Entry');

1 Ответ

1 голос
/ 15 февраля 2012

Лучший вопрос: если вы не используете идентификатор для первичного ключа в таблице типов телефонов, зачем даже использовать базу данных, почему бы просто не использовать статический массив? Если вы хотите использовать базу данных, вы должны добавить столбец идентификаторов и сохранить идентификатор в таблице контактов, которая ссылается на тип телефона. Затем, чтобы получить данные сброса, вы должны сделать следующее:

$this->set('phone_types', $this->PhoneType->find('list));

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

echo $this->Form->input('phone_type', array('options'=> $phone_types));

Если вы НЕ хотите использовать идентификатор в таблице, просто удалите таблицу и настройте статический массив:

$this->set('phone_types', array('Home' => 'Home', 'Cell' => 'Cell', 'Work' => 'Work'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...