我有两个表:product
和document
,它们都与document_id相关。
现在,我想使用Yii CDbCriteria通过product_id
从数据库中获取文档名称。
喜欢 :
SELECT d.*
FROM `document` As d, `product_document` AS p
WHERE d.document_id=p.document_id
AND
p.product_id=133;
我想写同样的查询,但使用
CDbCriteria
。我已经尝试过了,但是我被它的语法卡住了。 最佳答案
哈里语法正确。如果要使其在整个应用程序中更清洁和更可重用,请考虑使用命名范围:
/* scope in your Document model */
public function forProductId($id) {
$criteria = new CDbCriteria();
$criteria->condition = 'product.id = :productId',
$criteria->with = 'product';
$criteria->params = array(
':productId' => (int)$id,
);
return $this->dbCriteria()->mergeWith($criteria);
}
使您的设置随着时间的推移具有更高的可重用性...关于php - 如何在CDbCriteria Yii Framework中编写复杂的JOIN查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18447187/