Не совсем понятно что вы имеете ввиду, но вот пример:
Achievement::find()
->joinWith([
'assignments' => function (ActiveQuery $q) {
return $q->andWhere('activity_achievement_assignments.id')
->orderBy('activity_achievement_assignments.id DESC');
}
])
->forOwner($ownerId)
->limit($limit)
->andFilterWhere(['activity_achievement_assignments.status' => 'active'])
->orderBy('id DESC')
->all()
В самой модели:
/**
* @return ActiveQuery
*/
public function getCareers(): ActiveQuery
{
return $this->hasMany(Career::class, ['member_id' => 'id'])->orderBy('activity_member_careers.year_from')
->andFilterWhere(['activity_achievement_assignments.status' => 'active']);
}
Для
findOne()
не получится так сделать дополнительные условия, так как это сокращённая функция, к которой нельзя добавить стрелочный оператор. Добавление условий возможность только с функцией
find()
User::find->where(['id' => 1])->one();
//Сокращенная запись
User::findOne(1);