CakePHP создать встречу для клиента - PullRequest
0 голосов
/ 10 сентября 2011

Я строю простую систему бронирования в 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. Так что он не создает новую встречу ... какие-либо идеи?

1 Ответ

0 голосов
/ 10 сентября 2011

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

$this->set('client', $this->Appointment->Client->find('first', array('conditions' => array('Client.id' => $client_id))));

Не уверен, решит ли это проблему со списком пропавших врачей, но вам не хватает названия модели в методе создания

$this->Form->create('Appointment', ...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...