| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 | <?php/** * Created by PhpStorm. * User:  NODELOG * Date: 16/3/2 * Time: 下午2:07 */namespace api\common\controllers;use api\common\behaviors\ValidateBehavior;use common\enums\CodeEnum;use Yii;use yii\filters\Cors;use yii\rest\Serializer;use yii\web\ServerErrorHttpException;class Controller extends \yii\rest\Controller{    /**     * 配置让dataProvider序列化后使用data统一接收     * @var array     */    public $serializer = [        'class' => 'yii\rest\Serializer',        'collectionEnvelope' => 'data'    ];    public function behaviors()    {        $behaviors = parent::behaviors();        unset($behaviors['contentNegotiator']);        $behaviors['cors'] = [            'class' => Cors::className(),        ];        $behaviors['validate'] = ValidateBehavior::className();        return $behaviors;    }    /**     * 重写serializeData 函数,格式化返回数据 model序列号后使用data统一接收     * @param mixed $data     * @return mixed     * @throws \yii\base\InvalidConfigException     * @author nodelog     */    protected function serializeData($data)    {        /* @var Serializer $serializer */        $serializer = Yii::createObject($this->serializer);        if (is_array($data) && isset($data['data'])) {            $data['data'] = $serializer->serialize($data['data']);        }        //序列化数据        $data = $serializer->serialize($data);        //接口版本号        $data['version'] = Yii::$app->config->get('version');        return $data;    }}
 |