Php yii正确使用/理解模型
我希望通过YII框架正确获取相关产品的数据,因为我只是学习这个框架,我想知道你对我应该如何做有什么建议 我接管了一个使用YII的项目,它似乎已经有了一些功能,但我不知道如何利用它 这是我当前的代码 在我的产品模型中,这是我自己写的Php yii正确使用/理解模型,php,yii,Php,Yii,我希望通过YII框架正确获取相关产品的数据,因为我只是学习这个框架,我想知道你对我应该如何做有什么建议 我接管了一个使用YII的项目,它似乎已经有了一些功能,但我不知道如何利用它 这是我当前的代码 在我的产品模型中,这是我自己写的 public function getRelatedProducts($id) { $rawData=Yii::app()->db->createCommand('SELECT * FROM '.Product::model()->table
public function getRelatedProducts($id)
{
$rawData=Yii::app()->db->createCommand('SELECT * FROM '.Product::model()->tableName().' as Product LEFT JOIN '.ProductRelated::model()->tableName().' as ProductRelated ON ProductRelated.related_id=Product.id LEFT JOIN '.Images::model()->tableName().' as image ON Product.image_id=image.id WHERE ProductRelated.product_id='.$id.' ')->queryAll();
return $rawData;
}
我用
$related_products = Product::GetRelatedProducts($model->id);
这是可行的,但不使用YII框架
我注意到有一个叫做ProductRelated的模型,里面没有多少内容,但我不知道如何使用它
这显然是指我在数据库中的一个名为product_related的表,它有两个字段,product_id和related_id,其中related_id表示与之相关的产品的id
我想使用这个类,因为它显然是在考虑这个问题的情况下编写的。现在我只是跳过它
class ProductRelated extends BaseProductRelated {
public static function model($className=__CLASS__)
{
return parent::model($className);
}
public static function LoadByProductIdRelatedId($intProductId , $intRelatedId)
{
return ProductRelated::model()->findByAttributes(array('product_id'=>$intProductId,'related_id'=>$intRelatedId));
}
}
在阅读了更多关于YII的信息后,我重新构建了我的查询
public function getRelatedProducts($id)
{
$criteria = new CDbCriteria();
$criteria->alias = 'Product';
$criteria->join ='LEFT JOIN '.ProductRelated::model()->tableName().' as ProductRelated ON ProductRelated.related_id=Product.id';
$criteria->join .=' LEFT JOIN '.Images::model()->tableName().' as image ON Product.image_id=image.id';
$criteria->condition = 'ProductRelated.product_id='.$id.'';
$criteria->order = 'Product.id DESC';
return $criteria;
}
但是,我不确定如何处理最后一段代码,以及如何将其与上面显示的模型链接起来。您的代码中有许多错误。我认为你的前任也不太了解yii。 其中包括获取关系的功能 阅读有关yii关系活动记录的信息: Best问候Yii型号使用ActiveRecord模式。您会发现模型的方法允许您定义关系数据 如果您的Product.relations方法设置正确,那么相关产品将“神奇地”可用
注:我猜relatedProduct表是一个关联表,表示产品和。。。产品,所以你会使用很多。查看relations方法文档末尾的示例代码 我应该澄清一下,我也写了第一个查询。但谢谢,我来看看。您可能想添加更多关于产品相关模型的信息,以便我们可以为您提供帮助。字段/您希望将查询与该模型关联的原因。谢谢,我编辑了这篇文章,并在ProductRelated模型之前添加了更多信息。查看基本模型BaseProductRelated将非常有用。