1

私はcakephpを初めて使用し、ユーザーがAPIを介して車両を「予約」できる非常に単純なAPIを作成しようとしています。

車両、顧客、予約の 3 つのモデル、ビュー、コントローラーがあります。私はそのほとんどを実装しましたが、ユーザーがドロップダウンリストから選択できるようにして予約を追加する方法に固執しています。

基本的に、顧客 ID/名前と車両 ID/名前を選択できる 2 つのドロップダウン リストが必要です。それらを予約テーブルに入れます。

これは私の予約コントローラー追加機能です

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

一番下で、顧客のリストを作成する必要がある別の Web サイトのコードを使用しましたが、エラーが発生します。また、顧客のコンテンツは別のモデルにあるため、これは間違った方法であると推測しています。

では、予約ページに顧客のドロップダウン リストを追加するにはどうすればよいでしょうか。

4

2 に答える 2

4

モデル名は複数形ではなく単数形にする必要があるためこれを試してください

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

ただし、「Customer」モデルをコントローラーにロードするのを忘れている可能性があります。モデルReservationが関係を持っている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

controller でリスト配列を作成します

$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 に答える