Restful API: how add own computetd field in result

Hello Everyone,

can anybody explain me, how can I add own computed property to my result that is ActiveDataProvider.

I have function that return objects near me (objects/near?lat=X&lng=Y) and I would like to add field distance that consist distance between my current coordinates and object’s coordinates:

public function actionNear($lat, $lng)


   //For test purpose

   $lat = 55.7541072;

   $lng = 37.6204735;

   $query = Object::nearMe($lat, $lng);

   return $query;


In my model Object I have nearMe function:

public static function nearMe($lat, $lng) {

   if (!isset($lat) && !isset($lng)) return false;

   $result = Object::find()






                'distance' => 'SQRT(POWER(((lt - '. $lat .')*COS(RADIANS(lt))*40000/360), 2) + POWER(((lg - '. $lng .')*40000/360), 2))'



            ->orderBy(['distance' => 'ASC']);

        return new ActiveDataProvider([

            'query' => $result,

            'pagination' => [

                'pageSize' => $pagesize,




Field distanse not added in such request (don’t now why, just direct sql request working correcly.

I tried to add distance in fields() method of model, but can’t understand how can I push parameters lang and lat from request to fields. What is a correct way that helps to add in result own computed fields based on result from DB for each item ?