0

フォーム要素があります。送信ボタンをクリックすると、データがテーブルに追加されます。それはうまくいっています。しかし、各送信データが更新された後、最初にのみテーブルにデータを追加する必要があります.どうすればこれを行うことができますか?

function add(){
  if(!empty($this->data)){
    $this->loadModel('Defineroute');
    $this->Defineroute->create();
    $this->Defineroute->save($route_data); //route_data is data from the form
  }
}

もう1つ疑問があります。コントローラーにview.ctpがあり、そのためのview()関数があります。しかし、view.ctp では 1 つのフォーム要素を使用しています。

コントローラーでその要素の関数をどのように記述できますか? 関数を書き込もうとすると、ビューが見つからないというエラーが表示されます。

4

1 に答える 1

1

CakePhp は、保存しているデータ内の主キー ('id') の存在に基づいて、既存のレコードを更新するか、新しいレコードを挿入するかを決定します。

これにより、新しいレコードが挿入されます。

$route_data = array(
    'Defineroute' => array(
        'name' => 'I am a new record'
    )
);

$this->Defineroute->save($route_data);

これにより、既存のレコードが更新されます。

$route_data = array(
    'Defineroute' => array(
        'id'   => 123,
        'name' => 'I will update record with ID 123'
    )
);

$this->Defineroute->save($route_data);

これを単一のフォームに収容するには、ビュー/要素内にフォームを作成しid、既存のレコードを編集している場合にのみフィールドの入力を追加します

データの保存も参照してください

于 2013-05-22T06:40:02.837 に答える