无法访问动态模型验证 Yii2 中的属性值
Unable to access attributes values in Dynamic Model validation Yii2
我正在尝试验证用户输入。
$params = Yii::$app->getRequest()->getBodyParams();
$model = new DynamicModel($params);
$model->addRule(['userId', 'category', 'type'], 'required');
$model->addRule('userId', 'integer');
$model->addRule('category',
function ($attribute, $params, $validator) use ($model) {
var_dump($params); exit;
});
$model->validate();
return $model;
如何访问 category
参数的值,以便应用我的验证逻辑。目前正在 null
你需要这样的东西:
$model->addRule(
'category',
function ($attribute, $params, $validator) use ($model) {
if (empty($model->$attribute)) {
$model->addError($attribute, 'Error message');
}
}
);
the guide 中解释了内联验证器。
更正下面提到的这些行
$model->addRule('category',
function ($attribute, $params, $validator) { //<---remove use($model)
var_dump($this->$attribute); exit; //<--- correct this line
/*make logic here*/
}
);
closer 函数在这里定义,但它会调用模型内部的表单
这样,$this->$attribute 变量就可以工作了
我正在尝试验证用户输入。
$params = Yii::$app->getRequest()->getBodyParams();
$model = new DynamicModel($params);
$model->addRule(['userId', 'category', 'type'], 'required');
$model->addRule('userId', 'integer');
$model->addRule('category',
function ($attribute, $params, $validator) use ($model) {
var_dump($params); exit;
});
$model->validate();
return $model;
如何访问 category
参数的值,以便应用我的验证逻辑。目前正在 null
你需要这样的东西:
$model->addRule(
'category',
function ($attribute, $params, $validator) use ($model) {
if (empty($model->$attribute)) {
$model->addError($attribute, 'Error message');
}
}
);
the guide 中解释了内联验证器。
更正下面提到的这些行
$model->addRule('category',
function ($attribute, $params, $validator) { //<---remove use($model)
var_dump($this->$attribute); exit; //<--- correct this line
/*make logic here*/
}
);
closer 函数在这里定义,但它会调用模型内部的表单 这样,$this->$attribute 变量就可以工作了