Показывать имя и фамилию в качестве опции выбора в CakePHP

0

Я хочу показать форму с CakePHP, где пользователи могут выбрать сотрудника. Cake показывает входное поле как "select", которое является хорошим. К сожалению, выберите поле ввода только показывает id сотрудника, а не prename и lastname.

Модель:

Напоминание:

worker_id (reference to Worker model)

рабочий:

id
prename
lastname

Вот часть PHP:

echo $this->Form->create('Reminder', 
    array('action' => 'add',
        'inputDefaults' => array(
            'label' => false,
            'div' => false
        )
    )
); 

echo $this->Form->input('worker_id', array('empty' => 'Choose an employee'));
echo $this->Form->button('Save', array('type' => 'submit', 'class' => 'btn btn-green')); 

Я не нашел способ показать prename и lastname класса Worker, но сохранить id в качестве значения параметра в поле выбора.

Как это может быть сделано?

  • 0
    я не понял твоего требования. Пожалуйста, объясните на примере.
  • 0
    Я думаю, что вы запрашиваете атрибут option, $ this-> Form-> input ('worker_id', array ('empty' => 'Выберите сотрудника', 'options' => $ your_listing));
Показать ещё 1 комментарий
Теги:
select
forms
cakephp

2 ответа

1
Лучший ответ

Вам нужно создать $ your_listing, как показано ниже.

$your_listing = array('2'=>'John Fleming','3'=>'Justin Bond');

и использовал этот массив в вашем помощнике формы, как показано ниже.

echo $this->Form->input('worker_id', array('empty' => 'Choose an employee','options'=>$your_listing)); 

Итак, в приведенном выше примере выберите поле

<select name="worker_id">
  <option id="">Choose an employee</option>
  <option id="2">John Fleming</option>
  <option id="3">Justin Bond</option>
  </select>
  • 0
    Nilesh, каков наилучший способ получить массив $your_listing прямо из контроллера? Если вы можете предоставить эту информацию, я одобряю ее как ответ! Спасибо, приятель.
  • 0
    $ your_listing = $ this-> Article-> find ('список', массив ('condition' => array ('Article.status' => 'pending'), 'fields' => array ('id', 'fullname ')));
Показать ещё 3 комментария
1

Вы можете использовать массив, чтобы указать параметры ввода выбора.

$options =  array(
    'Value 1' => 'Label 1',
    'Value 2' => 'Label 2'
)
echo $this->Form->input('worker_id', $options,  array('empty' => 'Choose an employee'));

В вашем случае ваши метки должны быть Worker.id => Worker.prename + Worker.lastname

Ещё вопросы

Сообщество Overcoder
Наверх
Меню