Я много раз искал этот вопрос, и ни один из признанных ответов не работает для меня. Я хочу заполнить выпадающий список выбора в моем представлении из другой модели. По какой-то причине на данный момент отображается только последняя запись. У меня есть одно рабочее решение, но код длинный и уродливый, и я знаю, что должен быть лучший способ. В моем EventsController я следующий кодКак сделать выпадающий список CakePHP
$this->loadModel('Guests');
$this->set('Guests', $this->Guests->find('All',array('fields'=>array('first_name'))));
Насколько я понимаю, это создает переменные гость, что это массив, содержащий первые имена гостей на мероприятие. Затем в моих Events/index.ctp у меня есть следующий код для создания выпадающего списка. Первый пример работает, но длинный и уродливый. Следующие три примера - все ответы, которые я нашел здесь, но ни один из них не дает желаемого результата. Примеры 2 и 3 показывают только последнюю запись в таблице, а в примере 4 ничего не отображается.
<---- This works ---->
<select>
<?php foreach ($Guests as $Guests){ ?>
1 <option value = "<?php echo $Guests['first_name'];?>"> <?php echo $Guests['first_name'];?></option> <?php } ?>
</select>
<!--This does not work-->
<?= $this->Form->create('Guests'); ?>
2 <?= $this->Form->select('Guests', ['options' => $Guests['first_name']]); ?>
3 <?= $this->Form->input('Guests', array('options' => array('Guests' => $Guests['first_name']))); ?>
4 <?= $this->Form->input('Guests', array('options' => $Guests)); ?>
<?= $this->Form->end(); ?>
Я могу видеть, что переменная передается от EventsController, просматривая переменные с панели CakePHP. Я включил скриншот этого для конформации. Screenshot of variables here. Поскольку я новичок в cakePHP, я был бы признателен за то, что кто-то подскажет, где проблема. Заранее спасибо.
Как выглядит ваши отношения между событиями и гостей моделями? – Salines
К ним присоединяется другая таблица, называемая приглашением. Приглашение имеет ли я INT (11) event_id INT (11) guest_id INT (11) принят TINYINT (1) – Peakapot
Редактировать свой вопрос и добавить (скопировать) из вашей модели событий все отношения (hasMany, hasOne, принадлежит, ..) – Salines