这是一个难以解答的问题,因为我的代码工作正常。我只是在学习YII平台,而我的问题并不是我无法得到我想要的工作,但是如果有更好的方式来利用YII平台及其类的话。更有效的YII工作方式?查询数据库
基本上我有一个网店使用一个名为Lightspeed的平台,它使用YII平台。
在产品详细信息部分,我正在寻求拉动其相关产品。幸运的是,Lightspeed已经有了这个表格(这让我更有理由认为我做错了)。
现在我在做什么似乎有点硬编码。
在我看来,我有这样得到的产品...
$related_products = Product::GetRelatedProducts();
我没有在我的控制器,并在我的模型我有这个..
public function getRelatedProducts()
{
$rawData=Yii::app()->db->createCommand('SELECT * FROM xlsws_product as Product LEFT JOIN xlsws_product_related as ProductRelated ON ProductRelated.related_id=Product.id WHERE ProductRelated.related_id=Product.id ')->queryAll();
return $rawData;
}
正如我所说的这段代码没有任何问题,但是我发现模型中的所有其他查询都具有这么多的功能,这让我觉得我的做法不正确。
例子包括..
protected function getSliderCriteria($autoadd=0)
{
$criteria = new CDbCriteria();
$criteria->distinct = true;
$criteria->alias = 'Product';
$criteria->join='LEFT JOIN '.ProductRelated::model()->tableName().' as ProductRelated ON ProductRelated.related_id=Product.id';
if (_xls_get_conf('INVENTORY_OUT_ALLOW_ADD',0)==Product::InventoryMakeDisappear)
$criteria->condition = 'ProductRelated.product_id=:id AND inventory_avail>0 AND web=1 AND autoadd='.$autoadd.' AND parent IS NULL';
else
$criteria->condition = 'ProductRelated.product_id=:id AND web=1 AND autoadd='.$autoadd.' AND parent IS NULL';
$criteria->params = array(':id'=>$this->id);
$criteria->limit = _xls_get_conf('MAX_PRODUCTS_IN_SLIDER',64);
$criteria->order = 'Product.id DESC';
return $criteria;
}
那只是似乎用这个数据(虽然林不能确定数据如何变成数组,因为当我打印出来$criteria
我得到一个包含查询阵列小部件的例子命令。
让我知道如果你需要什么进出口寻找更多的澄清。