我正在尝试更新,但它正在添加一个新行

时间:2016-09-26 07:13:47

标签: php cakephp

这是我的更新代码: PS:empid是一个外键,但我认为不应该是原因而代码在CakePHP中

GridView.RowCellStyle

//此代码插入新行而不是更新,也不在新行中添加任何值

2 个答案:

答案 0 :(得分:0)

可能是您尝试使用simple save更新外部表格数据。

更新外键的多个记录

Model::updateAll(array $fields, mixed $conditions)

实施例

$this->Ticket->updateAll(
    array('Ticket.status' => "'closed'"),
    array('Ticket.customer_id' => 453)
);

简单保存主键

确保您的HTML有empid

echo $this->Form->input('Leave.empid', array('type' => 'hidden'));

保存模型

$this->Leave->empid = $this->request->data["Leave"]["empid"]; //2
$this->Leave->save($this->request->data);

在两者之间,您还可以尝试set模型数据,并检查$this->Leave->validates()$this->Leave->validationError是否有任何验证错误。

// Create: id isn't set or is null
$this->Recipe->create();
$this->Recipe->save($this->request->data);

// Update: id is set to a numerical value
$this->Recipe->id = 2;
$this->Recipe->save($this->request->data);

您可以找到有关所有Saving your data

的更多信息

希望这可以帮助你:)

答案 1 :(得分:0)

如果$ empid是Leave模型的相应表的主键(例如离开),只需替换:

$this->Leave->empid = $this->request->data["Leave"]["empid"];

通过

$this->Leave->id = $this->request->data["Leave"]["empid"];