Как мне можно использовать в Актив Дата провайдеру выполнение пользовательской функции (MYSQL FUNCTION), которая есть в базе данных.
Функция определяет ближайшее место по координаторам. И мне как то нужно вытащить из базы данные и подставить в ту функцию.
Сама функция dist( lat,lon,latitude,longitude)<100
lat,lon - это придет гет параметр
latitude,longitude - это должно браться с базы данных
И мне нужно как то внедрить его в мой код.
Пока даже не знаю с какой стороны с такой задачей подойти.
Спасибо.
class ClientsController extends ActiveController
{
public $modelClass = 'api\modules\v1\models\Clients';
public function actions()
{
$actions = parent::actions();
// disable the "delete" and "create" actions
unset($actions['create'],$actions['view'],$actions['delete'], $actions['update']);
return array_merge(
$actions,
[
'index' => [
'class' => 'yii\rest\IndexAction',
'modelClass' => $this->modelClass,
'checkAccess' => [$this, 'checkAccess'],
'prepareDataProvider' => function ($action) {
//---------------------------------
/* @var $model ClientsController */
$model = $action->modelClass;
$query = $model::find();
$dataProvider = new ActiveDataProvider(['query' => $query]);
$query->andFIlterWhere([
'country_id' => @$_GET['country_id'],
'state_id' => @$_GET['state_id'],
'city_id' => @$_GET['city_id'],
]);
return $dataProvider;
//---------------------------------
}
]
]
);
}
}