sovngare / yii2-array-validator
适用于 Yii 框架的数组验证器
v1.0
2020-12-29 15:57 UTC
Requires
- yiisoft/yii2: ^2.0
This package is auto-updated.
Last update: 2024-09-29 05:56:16 UTC
README
安装此扩展的首选方式是通过 composer。
composer require sovngare/yii2-array-validator
用法
使用类: sovngare\validators\ArrayValidator
示例 №1
如果 "fields" 属性将是数组,则进行验证。
public function rules() { return [ ['fields', 'required'], ['fields', ArrayValidator::class] ]; }
示例 №2
如果 status[code] 键是 100 到 500 范围内的整数,则进行验证。
public function rules() { return [ ['fields', ArrayValidator::class, 'key' => 'status.code', 'rules' => [ ['integer', 'min' => 100, 'max' => 500] ]] ]; }
示例 №3
默认键标签是 "属性"。模型错误日志
{ "fields": [ "Attribute must be no less than 100." ] }
要更改标签,必须发送参数 label
public function rules() { return [ ['fields', ArrayValidator::class, 'key' => 'status.code', 'rules' => [ ['integer', 'min' => 100, 'max' => 500] ], 'label' => 'status_code'] ]; }
模型错误日志现在
{ "fields": [ "Status Code must be no less than 100." ] }
验证图片
客户端数据
phone:7087952412
fields[name]:Sovngare
fields[avatar]:(\yii\web\UploadedFile)
模型
class TestModel extends Model { public $phone; public $fields; public function rules() { return [ [['phone', 'fields'], 'required'], ['fields', ArrayValidator::class, 'key' => 'name', 'rules' => [ ['required'], ['string', 'length' => [4, 16]] ], 'label' => 'name'], ['fields', ArrayValidator::class, 'key' => 'avatar', 'rules' => [ ['required'], ['image', 'maxSize' => 1024 * 1024 * 3] ], 'label' => 'avatar'], ]; } }
控制器
public function actionIndex() { $model = new TestModel(); $model->attributes = Yii::$app->request->getBodyParams(); if (is_array($model->fields)) { $model->fields['avatar'] = UploadedFile::getInstanceByName('fields[avatar]'); } if (!$model->validate()) { return $model->errors; } return $model->attributes; }