Yii 使用复合字段创建关系hasMany()
在型号产品中有关系:Yii 使用复合字段创建关系hasMany(),yii,yii2,Yii,Yii2,在型号产品中有关系: public function getDiscount() { return $this->hasMany(Discount::className(), ['id' => 'available_discount']); } 模型具有字段可用\u折扣,该字段将数据存储为1;2.3,其中1;2.3是折扣ID 查询Product::find()->joinWith('discount d')->where(['d.id'=>[1,2,3]])->all()返
public function getDiscount()
{
return $this->hasMany(Discount::className(), ['id' => 'available_discount']);
}
模型具有字段可用\u折扣,该字段将数据存储为1;2.3,其中1;2.3是折扣ID
查询Product::find()->joinWith('discount d')->where(['d.id'=>[1,2,3]])->all()
返回带有键discount=[]的产品
我如何返回与ID1,2,3相关的折扣?试试以下方法:
public function getDiscounts()
{
$idsAsArray = explode(';', $this->available_discount);
$query = Discount::find()->where(['id' => $idsAsArray]);
$query->multiple = true;
return $query;
}
然后通过:
$product->discounts; // returns Discount[]
$product->getDiscounts()->count(); // gets the count of discount models.
请注意,这不是一个真实的关系,您不能将其用于即时加载或联接。但这可能是你能从OP的计划中得到的最好的结果。