1

我是 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');
    }

在底部,我使用了来自不同网站的一些代码,这些代码应该创建一个客户列表,但我得到了一个错误。也因为客户的内容是不同的模型,我猜这是错误的方法。

那么如何将客户的下拉列表添加到我的预订页面。

4

2 回答 2

4

型号名称应该是单数,而不是复数,所以试试这个

$customers = $this->Customer->find('list');

但是,您可能忘记在控制器中加载“客户”模型。如果Reservation模型与Customer(例如,Reservation belongsTo Customer)有关系,最好通过模型树访问它;

$customers = $this->Reservation->Customer->find('list');
$this->set(compact('customers'));

要摆脱中间变量,请使用以下命令:

$this->set('customers', $this->Reservation->Customer->find('list'));
于 2013-03-07T09:30:24.657 回答
-1

在控制器中创建列表数组

$role=$this->Modelname->find('list',array('fields'=>'id,name'));

ctp像这样在文件中制作下拉列表。

echo $this->Form->input('role', array('options' => $roles, 'default' => '--Select--'));
于 2015-01-08T06:42:18.940 回答