Yii2 hasMany relation additional condition

In Yii2, you can add additional conditions to a hasMany relation by using the andWhere() method. This allows you to filter the related records based on specific conditions.

Here's an example of how you can add additional conditions to a hasMany relation in Yii2:

class Post extends \yii\db\ActiveRecord
{
    public function getComments()
    {
        return $this->hasMany(Comment::class, ['post_id' => 'id'])
            ->andWhere(['status' => Comment::STATUS_APPROVED]);
    }
}

In this example, the Post model has a hasMany relation called comments. The comments relation is defined to retrieve all comments that belong to the post with a specific post_id. Additionally, the andWhere() method is used to add an additional condition to the relation, filtering only the comments that have a status of Comment::STATUS_APPROVED.

By adding the andWhere() method to the hasMany relation, you can further refine the related records that are returned when accessing the comments relation on a Post model instance.

Please note that the example provided assumes you have already defined the Comment model and have a status attribute in the Comment model that represents the comment's status. You will need to adjust the example according to your specific model and attribute names.

I hope this helps! Let me know if you have any further questions.