2015-07-05 62 views
0

我寫這篇文章的代碼,但它不工作,它給這個錯誤如何使用交易CakePHP中

Call to a member function commit() on a non-object 

聽到的是我的代碼

$datasource = $this->Arrear->getDataSource();    
$datasource->begin(); 
if($this->Customar->saveField("total_bake",$amount) && $this->Arrear->save()){ 

    $dataSource->commit(); 
    return $this->redirect(array('action'=>'index')); 

}else{ 

    $dataSource->rollback(); 
    $this->Session->setFlash('Data insert Failed','failure'); 

} 
+0

什麼問題,你的代碼是什麼? –

+0

我想'$ datasource = $ this-> Arrear-> getDataSource();'返回一個數組而不是n對象。但根據你的蛋糕版本,這可能會有所不同。你使用哪一個? – bish

回答

0

變量是在PHP(因此在CakePHP中作爲井)是區分大小寫的 http://php.net/manual/en/language.variables.basics.php

你在第一行有

$datasource = $this->Arrear->getDataSource(); 

但你犯下像

$dataSource->commit(); 

您分配有$datasource數據源,而不是$dataSource。最後一個變量甚至沒有定義,這就是它顯示錯誤的原因。所以,你必須確保你在所有地方都使用完全相同的變量(具有相同的大小寫)。