0
다음 코드를 실행하면 Containable 동작이 작동하지 않습니다. 수동 조인을 사용하고 싶지 않습니다!Cakephp contains가 쿼리에 포함되었습니다.
$data = $this->Variant->find('first', array(
'contain' => array('VariantValue'),
'conditions' => array(
'Variant.product_id' => $product_id
),
'group' => 'VariantValue.variant_id having count(*) = 2'
));
데이터베이스 :
CREATE TABLE `variants` (
`id` int(11) NOT NULL,
`product_id` int(11) NOT NULL,
`price` decimal(7,2) NOT NULL
)
CREATE TABLE `variant_values` (
`id` int(11) NOT NULL,
`variant_id` int(11) NOT NULL,
`value_id` int(11) NOT NULL
)
모델 :
class Variant extends AppModel {
public $actsAs = array('Containable');
public $belongsTo = array(
'Product' => array(
'className' => 'Product',
'foreignKey' => 'product_id'
)
);
public $hasMany = array('CartVariant', 'VariantValue');
}
class VariantValue extends AppModel {
public $actsAs = array('Containable');
public $belongsTo = array(
'Value' => array(
'className' => 'Value',
'foreignKey' => 'value_id'
),
'Variant' => array(
'className' => 'Variant',
'foreignKey' => 'variant_id'
)
);
}
오류 메시지 :
오류 : SQLSTATE [42S22] : 열이 발견되지 : 그룹 문
SQL 쿼리에서 1054 알 수없는 열 VariantValue.variant_id : 변형 AS 변형 FROM SELECT Variant.id, Variant.product_id, Variant.price WHERE Variant.product_id = COUNT (*) = 2
테이블 구조를 공유하시기 바랍니다. –
[Plugin의 두 모델 (CakePHP)에 대한 질의 오류] (http://stackoverflow.com/questions/23741801/error-with-a-query-across-two-models-of-a-plugin) -cakephp) – ndm
중복이 될 수 있지만 프레임 워크에 Containable과 같은 것이 있으면 수동 결합을 사용하고 싶지 않습니다. –