我有一个表单元素。当我单击提交按钮时,它会将数据添加到表中。 这工作正常。但是我的需要是只在第一次向表中添加数据,每次提交数据后都应该更新。我们可以这样做吗?
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中我使用了一个表单元素。
我们如何在控制器中为该元素编写函数?当我尝试编写函数时,它显示错误视图..
答案 0 :(得分: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
字段添加输入