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 回答