2011-11-20 36 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;