framework/db/ActiveQuery.php
public function onCondition($condition, $params = [])
    {
        $this->on = $condition;
        $this->addParams($params);
        return $this;
    }
public function onCondition($condition, $params = [])
    {
        $this->on = $condition;
        $this->addParams($params);
        return $this;
    }
Sets the ON condition for a relational query.
The condition will be used in the ON part when [[ActiveQuery::joinWith()]] is called.
Otherwise, the condition will be used in the WHERE part of a query.

Use this method to specify additional conditions when declaring a relation in the [[ActiveRecord]] class:

```php
public function getActiveUsers()
{
return $this->hasMany(User::className(), ['id' => 'user_id'])
->onCondition(['active' => true]);
}
```

Note that this condition is applied in case of a join as well as when fetching the related records.
Thus only fields of the related table can be used in the condition. Trying to access fields of the primary
record will cause an error in a non-join-query.

@param string|array $condition the ON condition. Please refer to [[Query::where()]] on how to specify this parameter.
@param array $params the parameters (name => value) to be bound to the query.
@return $this the query object itself