我是cakephp的新手,我正在努力创建一个非常简单的api,用户可以通过api“保留”车辆。
我有三种型号,视图和控制器,分别是车辆,客户和预订。我实现了大部分内容,但我只是坚持如何通过允许用户从下拉列表中选择来添加预订。
基本上我想要两个下拉列表,允许我选择客户ID /名称和车辆ID /名称。并将它们放入预订表。
这是我的预约控制器添加功能
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.');
}
}
$customers = $this->Customers->find('list');
$this->set(compact('customers'));
$this->set('title_for_layout','Add Reservation');
}
在底部,我使用了来自不同网站的一些代码,这些代码应该创建一个客户列表,但是我收到了一个错误。另外,由于客户内容属于不同的模式,我猜这是错误的方法。
那么如何在预订页面中添加客户下拉列表。
答案 0 :(得分:4)
模型名称应该是单数,而不是复数,所以试试这个
$customers = $this->Customer->find('list');
但是,您可能忘记在控制器中加载“客户”模型。如果Reservation
模型与Customer
有关系(例如,预订belongs areTo Customer),最好通过模型树访问它;
$customers = $this->Reservation->Customer->find('list');
$this->set(compact('customers'));
要删除中间变量,请使用:
$this->set('customers', $this->Reservation->Customer->find('list'));
答案 1 :(得分:-1)
在控制器中创建列表数组。
$role=$this->Modelname->find('list',array('fields'=>'id,name'));
在此ctp
文件中创建下拉列表。
echo $this->Form->input('role', array('options' => $roles, 'default' => '--Select--'));