1
为我使用的公司工作的程序员已经退出了,所以我一直在学习Yii。我认为如果你了解Yii,这个解决方案很简单,但对我来说并不那么明显。如何通过Yii中的链接表从一个表中获取行?
我有三个表:
| Store | Brand | link_store_brand |
|-------|-------|------------------|
| id | id | storeID |
| | | brandID |
现在我需要取一个与存储相关联的所有品牌
我有这样的代码在我的商店模式:
public function relations()
{
return array(
'brands' => array(CActiveRecord::MANY_MANY,
'Brand',
'link_store_brand(storeID, brandID)',
'order' => 'brands.rank DESC, brands.name ASC',
'with' => 'logo'),
);
}
所以在我的控制器我这样做:
$store = Store::model()->findByPk($requestData->id);
$brands = $store->getBrands();
我知道我可以做Store::model()->with('brands')->findByPk()
。但是现场命名问题会导致SQL查询失败。所以我首先检索商店数据,然后获取品牌。
但$store->getBrands()
不工作(SQL失败),所以我想我必须使用查询生成器并使我自己的查询来获取品牌。但我该怎么做?
什么是确切的错误为什么SQL失败? – Bfcm