2011-11-20 92 views
0

我有2个模型。订单&订单产品Cakephp 2请求数据和模型

当添加订单时,我试图操纵订单模型的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未启用(!这 - >白水())。

任何人都可以提出一个替代解决方案,无需手动设置控制器中的数据。

回答

0

您需要调用成功的保存位置才能更改数据库中的记录。如果您保存并且失败,那么您正在编辑的值将被丢弃。

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

现在您只需要一个不失败的事务。即

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

另外请注意,保存的调用将需要更多的信息,如一个ID,或者你需要先读一个记录,然后保存它。

3

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