我有一个简单的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列表的下拉框。
答案 0 :(得分: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)); ?>
也为客户使用相同的东西,您将获得下拉列表中的客户和车辆列表。