Я строю простую систему бронирования в CakePHP, которая использует 3 таблицы для создания заказов.Это клиенты, врачи и назначения.У клиента и врача может быть несколько встреч, но у встречи может быть только один клиент и один врач.
Я прекрасно создал части для создания и редактирования клиентских частей, но изо всех сил стараюсь создать встречу для создания и связать их сврач и клиент.Я установил отношения в моделях, и они отлично работают для извлечения данных, поэтому я знаю, что они работают как положено.
Так, например, если я хочу записаться на прием для клиента с идентификатором 1, я бы посетил: /appointments/add/1
И тогда в представлении будет что-то вроде:
<h1>Book Appointment <em>for</em> <?php echo $client['Client']['firstname'] . " " . $client['Client']['lastname']; ?></h1>
<?php echo $this->Form->create('Appointment', array('url' => array('admin'=>true,'controller'=>'appointments','action'=>'add',$client_id))); ?>
<fieldset id="post-form">
<ul>
<li>
<?php echo $this->Form->input('client_id', array('type' => 'hidden','value'=>$client_id)); ?>
<?php echo $this->Form->input('doctor_id', array('label' => '<strong>Choose Doctor</strong>',$doctors)); ?>
</li>
<li>
<?php echo $this->Form->input('datetime', array('label' => '<strong>Date and Time</strong>')); ?>
</li>
<li>
<?php echo $this->Form->input('treatment', array('label' => '<strong>Treatment</strong>')); ?>
</li>
<li class="sep clearfix">
<input class="submit" type="submit" name="submit" value="Book Appointment" />
</li>
</ul>
</fieldset>
<?php echo $this->Form->end(); ?>
Итак, как вы можете видеть, я хочу отобразить имя клиента в заголовке, используя переданный идентификатор (который называется client_idв таблице встреч).И вы должны быть в состоянии выбрать имя доктора из выпадающего списка.
Пока это мое контролирующее действие:
function admin_add($client_id)
{
$this->set('client_id', $client_id);
$this->set('doctors', $this->Appointment->Doctor->find('list'));
if (!empty($this->data))
{
if ($this->Appointment->save($this->data))
{
$this->Session->setFlash('Your post has been saved.');
$this->redirect(array('admin' => true, 'controller' => 'appointments', 'action' => 'index'));
}
}
}
Однако мой список врачей НЕ создается ...Кто-нибудь может помочь?Спасибо
РЕДАКТИРОВАТЬ: также заметил, что каждый раз, когда я отправляю форму, она переопределяет одну и ту же встречу каждый раз с идентификатором 1. Так что он не создает новую встречу ... какие-либо идеи?