2012-12-04 69 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