ActiveForm yii2 验证表单错误
Posted
技术标签:
【中文标题】ActiveForm yii2 验证表单错误【英文标题】:ActiveForm yii2 on validation form error 【发布时间】:2016-04-11 14:39:23 【问题描述】:我有一个看法:
<?= $form->field($registration, 'username',
['template' => '<div class="uk-form-row">
<label for="register_username">label</label>
inputerror
</div>'])
->textInput(['class' => 'md-input']) ?>
我希望它在触发错误后向textInput
添加新类。
在模型中,这个输入有一些规则:
['username', 'string', 'min' => 2, 'max' => 255, 'message' => 'Can not be blank'],
['username','required']
例如,如果我输入 1 个符号,将触发一个错误,即 Can not be blank
。但我也想在此输入上添加md-input-danger
类。有没有合适的方法来做到这一点?
【问题讨论】:
【参考方案1】:您应该将一些选项应用于您的表单:
$form = ActiveForm::begin([
'layout' => 'horizontal',
'fieldConfig' => [
'horizontalCssClasses' => [
'error' => 'md-input-danger'
],
],
]);
【讨论】:
它不会添加或更改输入类。它应该吗?你能提供一些关于'layout' => 'horizontal'
的信息吗?【参考方案2】:
如果你想使用 yii\web\ActiveField 看看:
yii-widgets-activefield.html#$errorOptions-detail
代码应该是这样的:
$form = ActiveForm::begin([
'fieldConfig' => [
'errorOptions' => ['class' => 'md-input-danger']
],
]);
附: Hutsi 的代码使用 yii\bootstrap\ActiveField
【讨论】:
根据文档,这将更改生成的错误标签。不是输入。 "错误标签的默认选项。" 我没有尝试过,但也许您可以更改 fieldConfig 的“选择器”属性以指向您的输入?然后errorOptions会直接改变输入类。以上是关于ActiveForm yii2 验证表单错误的主要内容,如果未能解决你的问题,请参考以下文章
PHP面试题精讲—从Yii2源码ActiveForm看如何安全处理表单验证