В методе search:
Код: Выделить всё
$this->query = Restaurant::find()->select([...]);
$this->setSort();
Код: Выделить всё
$distances = Yii::$app->db->createCommand('
SELECT ' . $formula . ' AS `distance`
FROM `address`
WHERE `address`.`restaurant_id`=`rest`.`id`
');
$formula - это кусок mysql c вычислениями расстояний
В конце мне нужно из $distances выбрать минимальную (для этого ресторана) и соединить сюда:
Код: Выделить всё
$this->query->addSelect(['distance' => ...]);