Yii2简单的特别验证

时间:2017-11-14 06:57:36

标签: php validation yii2

我创建了一个简单的验证,如:

public function actionMerchant() {

    $post = Yii::$app->request->post();

    $model = DynamicModel::validateData($post, [
        [['mid'], 'required'],
        [['mid'], 'integer'],
        ['email', 'email'],
    ]);

    if ($model->hasErrors()) {
        return [
            "message" => "Validation fail. Please check your input!"
        ];
    }

    return $model;
}

从上面的代码中,我希望如果我发送mid和email参数的post参数,这两个参数都可以由DynamicModel类验证。

我遇到的问题,如果我发送电子邮件参数没有 mid参数会怎么样?

我会收到Getting unknown property: yii\\base\\DynamicModel::mid错误消息。

是否需要验证不起作用?

由于

1 个答案:

答案 0 :(得分:2)

要求验证工作正常。问题出现在DynamicModel中,因为Yii2正在从您传递的第一个参数创建对象属性(例如,您的$_POST属性)。要使其正常工作,首先定义模型属性,然后为其加载值,然后验证。

DynamicModel Yii2

中的更多内容

===编辑===

$model = new DynamicModel(['mid' => null, 'email' => null]);
$model->addRule('email', 'email');
//here add more rules
$model->load($post);
$model->validate();