2012-12-04 63 views
0
同型號

我努力讓自己在模型中的多個關係中的蛋糕kbook 描述我有兩個模型賬戶和稅務這樣倍數關係來介紹CakePHP

帳戶(ID,姓名,密碼) 稅(ID .name和sales_tax_gl,purchase_tax_gl)

兩個sales_tax_gl和purchase_tax_gl到Account.id 這些都是我創造

class Tax extends AppModel { 
var $name = 'Tax'; 
var $displayField = 'name'; 

var $belongsTo = array(
    'SalesTax' => array(
     'className' => 'Account', 
     'foreignKey' => 'sales_tax_gl', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ), 
    'PurchaseTax' => array(
     'className' => 'Account', 
     'foreignKey' => 'purchase_tax_gl', 
     'conditions' => '', 
     'fields' => '', 
     'order' => '' 
    ) 
); 
} 


Account Model 
class Account extends AppModel { 
var $name = 'Account'; 
var$primaryKey = 'id'; 


var $hasMany = array(  
    'TaxSalesTax' => array(   
    'className' => 'Tax',    
    'foreignKey' => 'sales_tax_gl'),   
    'TaxPurchaseTax' => array(   
    'className' => 'Tax',    
    'foreignKey' => 'purchase_tax_gl') 

); 

} 

的模型,但它失敗,此消息「警告相關(2): pg_query()[function.pg-query]:查詢失敗:錯誤:缺少表「帳戶」的FROM子句條目

模型有什麼問題?我正在使用postgreSql,感謝您的幫助

+1

您的錯誤與查詢有關,但您並未提供與查詢相關的代碼。這可能有幫助! :) – Dave

+0

它是簡單的查詢,只需$ this-> Tax-> find('all'),我錯了嗎?謝謝 –

回答

0

在第一個模型中,您的模型名稱是SalesTax,第二個模型名稱是TaxSalesTax,請將其更正爲正確的名稱並嘗試。

+0

嗨,謝謝,它是一樣的,還是錯誤的。我不知道蛋糕書的例子與我denifine一樣定義。 –

+0

嗨在哪個控制器中出現錯誤?您可以在這裏發佈保存查詢嗎? – Sanjay

+0

Sanjay,錯誤來自稅控制器,當我嘗試使用$ this-> Tax-> find('all) –

0

我在想,我發現了這個問題。這是因爲我使用的虛擬域帳戶模型像下面

var $name = 'Account'; 
var $primaryKey = 'id'; 
var $displayField = 'name'; 
var $order=array('Account.id'); 
var $virtualFields = array('dropdown_name' => 'Account.id || \' \' || Account.name'); 

當我取消$ virtualFields它,因爲它應該工作,但我還是不知道爲什麼?

+0

終於我知道了。我們應該重寫模型,以使用虛擬字段與模型別名。感謝所有 –

+0

對,更多信息在這裏找到:http://book.cakephp.org/2.0/en/models/virtual-fields.html#virtual-fields-and - 模型 - 別名 – Ceeram