Cakephp 2请求数据和模型

时间:2011-11-20 17:50:44

标签: cakephp cakephp-2.0

我有2个型号。订单& OrderProduct

当添加Order to时,我试图操纵Order Model的beforeValidate()中的OrderProduct数据但是没有成功。

我试过了。 (两者都在订单模型中)

function beforeValidate() 
{
    parent::beforeValidate();
    $this->data['OrderProduct']['total'] = 1000;
    return true;
}

function beforeValidate() 
{
    parent::beforeValidate();
    CakeRequest::data('OrderProduct.total', 1000);
    return true;
}

但是在事务失败后从控制器查看时,OrderProduct数据没有被修改(!this-> saveAll())。

可以提出替代解决方案,而无需在控制器中手动设置数据。

2 个答案:

答案 0 :(得分:3)

尝试$ this-> request-> data ['OrderProduct'] ['total'] = 1000;

答案 1 :(得分:0)

您需要在某处调用成功保存来更改数据库中的记录。如果您执行保存但失败,则您正在编辑的值将被丢弃。

仅供参考,第一个应该用于设置$ this-> data中的值。

现在您只需要一个不会失败的交易。即

$this->save($this->data);

另请注意,保存调用需要更多信息(如id),或者您需要先读取记录然后保存。