jsyqw/param-validate

There is no license information available for the latest version (0.0.2) of this package.

基于Yii2框架,对接口的统一验证的验证器

Installs: 2

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:yii2-extension

0.0.2 2023-04-10 12:49 UTC

This package is auto-updated.

Last update: 2024-05-10 15:30:52 UTC


README

基于Yii2框架的验证器,针对接口可以自动验证声明的参数;
经过验证的参数,可以直接访问属性,不用再通过isset判断;
验证规则和Yii2的rules规则一样

一.使用composer安装

1.安装

    composer require jsyqw/param-validate

2.使用

在控制器的方法中

/**
     * 列表
     * 默认分页参数
     *      每页条数:per_page
     *      第几页: page
     * @return array
     */
    public function actionIndex(){
        $reqData = RequestHelper::get();
        //验证
        $validateModel = ParamsValidate::validate($reqData, [
            [['page','per_page'], 'integer'],
            ['username', 'filter', 'filter' => 'trim'],
            ['realname', 'filter', 'filter' => 'trim'],
            ['status', 'integer', 'message' => '状态参数必须是整型'],
            ['phone', 'safe'],
        ]);
        if($validateModel->hasErrors()){
            return $this->paramsError($validateModel->getFirstErrorMsg());
        }
        $query = new Query();
        $columns = [
            't.id',
            't.status',
            't.username',
            't.avatar',
            't.realname',
            't.phone',
            't.create_time',
            't.update_time',
        ];
        $query->select($columns);
        $query->from(SysUser::tableName() . ' t');
        $query->andFilterWhere([
            't.status' => $validateModel->status,
        ]);
        $query->andFilterWhere(['like', 't.username', $validateModel->username])
            ->andFilterWhere(['like', 't.realname', $validateModel->realname])
            ->andFilterWhere(['like', 't.phone', $validateModel->phone]);
        $query->orderBy('t.id desc');
        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);
        $list = $dataProvider->getModels();
        $total = $dataProvider->getTotalCount();
        $result = [
            'list' => $list,
            'total' => $total,
        ];
        return $this->success($result);
    }