假设我有一个表/型号产品。 假设我有一个表/模型Equivalencies,其列中包含2:
original_id和equivalent_id都将外键作为Products的主键。所以,我不能遵循将original_id命名为product_id的惯例,因为我还必须处理equivalent_id(也可能是product_id)。
我该怎么办?
目前,我的产品型号配置如下:
public $hasMany = array(
'Original' => array(
'className' => 'Equivalency',
'foreignKey' => 'original_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => '',
'table' => 'products',
),
'Equivalent' => array(
'className' => 'Equivalency',
'foreignKey' => 'equivalent_id',
'dependent' => false,
'conditions' => '',
'fields' => '',
'order' => '',
'limit' => '',
'offset' => '',
'exclusive' => '',
'finderQuery' => '',
'counterQuery' => ''
),
);
有人能告诉我这是不是应该怎么做?
我想要的东西 我希望能够找到给定产品的所有等价物,但条件超过关系(具有original_id,equivalent_id的条件)。 这不起作用:
$original = $this->Product->find('all',
array(
'contain' => 'Product.Original.deleted_equivalent = false',
'conditions' => array('Product.id' => $id)
));
答案 0 :(得分:0)
你的模型很好,这就是你应该这样做的方式。
您的寻找电话不是。
试试这个
$original = $this->Product->find('all',
array(
'contain' => array('Equivalent'),
'conditions' => array('Product.id' => $id)
));