1

私は顧客が車を予約できるようにする簡単なAPIを持っています。予約コントローラーには、予約を追加する機能があります。コードは次のとおりです。

コントローラ

    function add() {
        if($this->request->is('post')) {
            if($this->Reservation->save($this->data)) {
                $this->Session->setFlash('The Reservation was successfully added!');
                $this->redirect(array('action'=>'index'));
            } else {
                $this->Session->setFlash('The Reservation was not added.');
            }
        }
        $this->set('title_for_layout','Add Reservation');
    }

これが予約の追加ビューにあるものです。

意見

<?php
echo $this->Form->create('Reservation', array('action'=>'add'));
echo $this->Form->input('customer_id', array( 'type' => 'text' ) );
echo $this->Form->input('vehicle_id', array( 'type' => 'text' ) );
echo $this->Form->input('date');
echo $this->Form->end('Add Reservation');
?>

しかし、新しい予約を追加していて、車両ID用のドロップダウンボックスと顧客ID用のドロップダウンボックスが必要なため、これを行うにはどうすればよいですか?

私はこれを顧客と車両のモデルに入れることによってモデルをリンクしたと思います:

var $hasMany = array( 'Reservation' => array( 'className' => 'Reservation' ) );

誰かが私を正しい方向に向けて、予約の追加ページに車両と顧客IDのリストを含むドロップダウンボックスが表示されるようにできますか?

4

1 に答える 1

3

コントローラの追加機能で、

$vehicle = $this->Reservation->Vehicle->find('list', array('fields' =>array('Vehicle.id','Vehicle.name')));                               
$this->set('vehicle', $vehicle);

あなたの見解では、

<?php echo $this->Form->input('vehicle_id', array('type' => 'select',
                                                  'options' => $vehicle)); ?>

顧客にも同じことを使用すると、ドロップダウンに顧客と車両のリストが表示されます。

于 2013-03-09T15:58:35.047 に答える