2016-06-15 3 views
1

У меня вопрос о службе RESTfull yii2.Yii2 rest вернуть пользовательское значение

in the cal view (GET resource/{id}) Я хочу вернуть пользовательскую величину, которая принимает номер текущей страницы, например host/resource?page=x (если она установлена), и она суммируется на единицу (x + 1) до тех пор, пока число не будет равно значение заголовка X-Pagination-Total-Count.

Так что ответ будет выглядеть следующим образом:

[ 
     { 
     "id": 1, 
     "username": "test", 
     "email": "[email protected]", 
     "status": 10, 
     "created_at": "2015-03-15 10:40:34" 
     } 
     { 
     "id": 2, 
     "username": "test1", 
     "email": "[email protected]", 
     "status": 10, 
     "created_at": "2014-05-12 12:50:26" 
     } 
     . 
     . 
     . 
    "custom_val" = x+1 
] 

ли possibile это делать? Как я могу установить возврат этого значения? Заранее благодарим за помощь.

редактировать: добавление кода контроллера

class UserController extends \yii\rest\ActiveController 
{ 

    // Model 'User' 
    public $modelClass = 'api\modules\v1\models\User'; 

    /** 
    * Behaviors 
    * 
    * @return mixed 
    */ 
    public function behaviors() 
    { 
     $behaviors = parent::behaviors(); 

     $behaviors['contentNegotiator']['formats']['application/json'] = \yii\web\Response::FORMAT_JSON; 
     $behaviors['authenticator'] = [ 
      'class' => \yii\filters\auth\HttpBasicAuth::className(), 
     ]; 


     return $behaviors; 
    } 

    /** 
    * Actions 
    * 
    * @return mixed 
    */ 
    public function actions() 
    { 

     $actions = parent::actions(); 


     unset($actions['delete'], $actions['create'], $actions['update']); 

     $actions['index']['prepareDataProvider'] = [$this, 'prepareDataProvider']; 

     return $actions; 

    } 

    /** 
    * Data Provider 
    * 
    * @return yii\data\ActiveDataProvider 
    */ 
    public function prepareDataProvider() 
    { 
     $data = User::find(); 

     $provider = new \yii\data\ActiveDataProvider([ 
      'query' => $data 
     ]); 

     return $provider; 
    } 

} 
+0

Post вид и контроллер кода –

+0

View? это REST, он возвращает сериализованные данные так, как я опубликовал, я могу опубликовать код – giovaZ

+0

Правильно, у вас есть какой-то код в контроллере? –

ответ

3

Попробуйте это:

public function afterAction($action, $result){ 

    $result = parent::afterAction($action, $result); 

    if($action->id == 'index') //check controller action ID 
     $result['custom_val'] = 111; 

    return $result; 
} 
Смежные вопросы