PHPYII 2,有没有一种方法可以预取带有条件的相关模型
因此,我最近发现了Yii查询的“with”功能,正如您在上面的查询中所看到的,我正在获取与它们相关的产品的价格警报,这使我不必循环查看每个价格警报并单独获取每个产品,但我的问题是,有没有一种方法可以强制对此设置条件,我想得到的是带有产品条件的价格通知,所以我只想得到相关产品条件为真的价格通知 您可以在PHPYII 2,有没有一种方法可以预取带有条件的相关模型,php,yii2,Php,Yii2,因此,我最近发现了Yii查询的“with”功能,正如您在上面的查询中所看到的,我正在获取与它们相关的产品的价格警报,这使我不必循环查看每个价格警报并单独获取每个产品,但我的问题是,有没有一种方法可以强制对此设置条件,我想得到的是带有产品条件的价格通知,所以我只想得到相关产品条件为真的价格通知 您可以在中使用方法和闭包来完成 PriceAlert::find()->andWhere(['user_id' => Yii::$app->user->id])->orderB
中使用
方法和闭包来完成
PriceAlert::find()->andWhere(['user_id' => Yii::$app->user->id])->orderBy('complete DESC, updated_at DESC')->with('product')
请参阅。前面的答案不完整,如果您想在主查询中添加产品条件(而不是获取相关记录的人),您只需使用
joinWith()
而不是with()
,例如:
...->with(['product' => function ($query) {
$query->andWhere(/* product conditions here */);
}]);
或者,如果要在联接查询的部分的中指定一些额外条件:
PriceAlert::find()
->joinWith('product')
->andWhere(['user_id' => Yii::$app->user->id])
->andWhere(['>', 'product.price', 100])
->orderBy('complete DESC, updated_at DESC')
->all();
阅读更多信息。正在寻找,请给我留下一些问题。:)被10秒击败。
PriceAlert::find()
->joinWith(['product' => function ($q) {
// add conditions here
}])
->andWhere(['user_id' => Yii::$app->user->id])
->orderBy('complete DESC, updated_at DESC')
->all();