0

データを編集しようとしていますが、この編集データは新しいエントリになり、古いデータは削除されます。

だから私はこれを行うために以下のコードを試しました

public function edit($id = null){
if ($this->request->is(array('post', 'put')))
{
    $this->Transaction->create();
    if ($this->Transaction->save($this->request->data)) {
                $this->Transaction->delete();
                $this->Session->setFlash(__('The transaction has been saved.'));
    }

}

ここでは削除のみが発生し、新しいエントリ データを取得していません。これどうやってするの?誰か助けてください。

4

2 に答える 2

0

フォーム編集では、最初にIDをモデルの主キーに割り当てます。create() メソッドを作成する必要があり、ビュー ソースの PUT メソッドが使用可能かどうかを確認します。

 public function edit($id = null){
 if (!$this->Transaction->exists($id)) {
        throw new NotFoundException(__('Invalid user'));
    } 
 if ($this->request->is(array('post', 'put'))){
   $this->Transaction->id=$id;
   if ($this->Transaction->save($this->request->data)) {   
            $this->Session->setFlash(__('The transaction has been saved.'));
    }
  }

別の代替方法は updateAll() Cakephp updateAll です

于 2016-01-25T04:58:58.777 に答える