0

Cake kbook で説明されているように、モデルで複数の関係を作成しようとしています。このような 2 つのモデル Account と Tax があります

Account(id, name, code) Tax(id.name, sales_tax_gl, purchase_tax_gl)

Account.id に関連する sales_tax_gl と purchase_tax_gl の両方が、私が作成したモデルです

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]: Query failed: ERROR: missing FROM-clause entry for table "Account"」というメッセージで失敗します

モデルのどこが悪いの?私はpostgreSqlを使用しています、あなたの助けに感謝します

4

2 に答える 2

0

最初のモデルのモデル名は SalesTax で、2 番目のモデル (アカウント モデル) のモデル名は TaxSalesTax です。正しい名前に修正して試してください。

于 2012-12-04T06:28:45.320 に答える
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 のコメントを外すと、正常に機能しますが、まだ理由がわかりません。

于 2012-12-04T16:50:50.087 に答える