Смотрите, вы можете пойти двумя путями. Сделать условие выборки единичным, там где вам это нужно.
function ($someCountry = 'Ukraine')
{
$product = Product::findOne(123);
//Запрос ниже выполняться может сколько угодно раз в отличии от $price = $product ->Price();
$price = $product ->getPrice()
->where(['country =:someCountry', [':someCountry' => $someCountry])
->orderBy('id')
->all();
}
Либо изначально сделать связь с определенным условием.
class Product extends ActiveRecord
{
public function getBigPrices($someCountry)
{
return $this->hasMany(Price::className(), ['product_id' => 'id'])
->where('country > :someCountry', [':someCountry' => $someCountry])
->orderBy('id');
}
}
Только в первом варианте, думаю есть более простой Where что то вроде
$query->where(['country' => USA]);