我正试图在蛋糕kbook中描述的模型上建立多重关系 我有两个模型账户和税收这样
帐户(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' )
);
}
但它失败并显示此消息“Warning(2):pg_query()[function.pg-query]:查询失败:ERROR:缺少表”帐户“的FROM子句条目
与模特有什么不对?我正在使用postgreSql,谢谢你的帮助
答案 0 :(得分:0)
在第一个模型中,您的模型名称是SalesTax,而在第二个模型中,模型名称是TaxSalesTax,请将其更正为正确的并尝试。
答案 1 :(得分: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时,它可以正常工作,但我仍然不知道为什么?