cakePHP: автоматические элементы формы, заполнение списка выбора

У меня есть две таблицы, users{name,id,age_range_id} а также age_ranges{id,range_name},
Есть также две модели, контроллеры и соответствующие файлы просмотра.

Во взглядах у меня есть adduser.ctp файл, который содержит правильную форму.
То, что я хочу, это иметь вход (выбрать), который будет содержать параметры из age_ranges.name поле.
Итак, в модели пользователей я добавил var $hasMany = 'age_ranges';Что дальше?

Я знаю, что могу использовать $this->set сохранить параметры в виде массива в контроллере, а затем использовать его в представлении.
но я предполагаю (неправильно?), что, связывая модели, существует "автоматический" способ сделать это. Что привело меня к вопросу: как?

3 ответа

Решение

Я не буду повторять то, что Торп и догматик уже написали. Они оба верны.

Однако, хотя трудно убедиться, не увидев файлы вашей модели, здравый смысл говорит мне, что в модели User отношение должно быть User: hasOne: AgeRange, а в модели AgeRange это AgeRange: hasMany: User, а не наоборот ты написал.

Кроме того, вы указываете не имя таблицы (age_ranges) в отношении, а имя модели (AgeRange).

Смотрите эти страницы в руководстве:

http://book.cakephp.org/view/1001/Understanding-Models & http://book.cakephp.org/view/1039/Associations-Linking-Models-Together

Добавить $this->set('ageRanges', $this->User->AgeRange->find('list')); к действию контроллера

затем добавьте $this->Form->input('age_range_id') в форму

Вы можете сделать это:

$this->User->AgeRange->find('list') и передать это в представление для оператора выбора

Другие вопросы по тегам