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
  }
}

我还有一个疑问,我在控制器中有一个 view.ctp 我有一个 view() 函数。但是在 view.ctp 我使用了一个表单元素。

我们如何在控制器中为该元素编写函数?当我尝试编写函数时,它显示错误丢失视图..

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 回答