form-> select ('group_id') показывает только идентификатор, а не группу в Cakephp - PullRequest
0 голосов
/ 03 апреля 2012

Я создаю приложение, в котором администраторы могут добавлять нескольких пользователей в группы. В действии Add пользовательского контроллера я:

$this->set('groups', $this->User->Group->find('list'));

Выходными данными должны быть поля выбора с другой группой, которая в настоящее время существует в таблице групп.

Groups table:
   'id' 'group' 'comments'

Model (user):
   public $belongsTo = array('Group');

UserController:
   $this->set('groups', $this->User->Group->find('list'));

View (Users/add)
   echo $this->Form->input('Group_id');

Что я делаю не так?

Ответы [ 4 ]

0 голосов
/ 05 апреля 2012

В классе Group добавьте эту строку

var $displayField = 'group';

Это скажет Cake, что для этого класса он должен обрабатывать group, как если бы это было поле name в стандартной модели, а find('list') даст желаемые результаты.

0 голосов
/ 03 апреля 2012

регистр символов очень важен в программировании. не только для файлов, но и для имен классов и в вашем случае имен полей. в противном случае ваш код не будет работать правильно:

echo $this->Form->input('group_id');

должно всё исправить.

0 голосов
/ 04 апреля 2012

Если я не ошибаюсь, find ('список') ищет идентификатор и имя, поэтому вам нужно указать поля в вашем случае, потому что вы пропустили поле имени, надеюсь, это поможет

0 голосов
/ 03 апреля 2012

Это выглядит правильно, я предполагаю, что у вас есть поле group_id в таблице пользователей. Вы можете попробовать пару вещей.

  1. Изменить регистр, например Идентификатор группы к идентификатору группы
  2. Измените отображение поля выбора следующим образом

    echo $ this-> Form-> input ('group_id', $ groups);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...