问题标签 [yii2-validation]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1517 浏览

yii2 - Yii2 模型自定义规则和数组属性的验证

试图解决这个问题,但无济于事。我有一个数组作为模型的属性,我正在尝试根据需要为数组中的某些键创建自定义验证。或者甚至无法弄清楚属性标签将如何工作?这是我的代码:

模型

我什至尝试传递整个数组并检查键和值的验证器方法,但自定义验证器甚至没有被触发。

0 投票
1 回答
491 浏览

php - Yii2 验证器不显示消息

有人可以告诉我我在这里做错了什么吗?

好吧,我的问题是验证器工作正常,但它显示它是内置的 errorMessage,以防我想上传更大的文件。不是我指定的那个'message' => 'Here goes my message'

如果有 2 个验证器,我如何获得自己的 errorMessage?!

我想最简单的方法是像这样拆分验证:

但首先我需要开始处理这些消息。

编辑:

问题解决了。阅读文档时需要更加小心。对于具有文件大小的自定义消息需要使用'tooBig'or 'tooSmall',但对于扩展自定义消息需要使用'wrongExtension'.

0 投票
1 回答
10986 浏览

php - Yii2: compare validation of password and repassword

I'm a beginner of Yii, that's why can't figure out, what's wrong. I use the same model - Users - for login, registration and edition profile.

Users model:

view snippet:

Site controller action:

I use update scenario for profile editing page. During this scenario password_repeat is required and need to be the same as password. But it doesn't work as expected. A: When i try to submit form without entered password AND repass, I see message "can't be blank" only for password. Then I put value in ONLY pass input, and page reloads (DB table doesn't changes), and after reloading I see message "can't be blank" this time for repass field! But the most strange is that before next page reloading everything work normal. After reloading goto A; :) If I delete scenario, everything is ok with validation. But I can't delete it, cause in this case registration fails (repass field becomes required to fill).

So, what need I to do my with pass-repass functionality to work it fine (with scenario 'update')? Where is mistake?

0 投票
1 回答
5014 浏览

ajax - Yii2 ajax 验证并提交表单

我的 AJAX 信息很少。这就是为什么我在这里问我的问题......

在 yii2 中如何使用 ajax 验证创建和提交表单?

所以我搜索但找不到正确的解决方案......

例如:(根据官方培训网站)

在控制器中:

我的问题:

1- ajax 验证

2-用ajax提交表单

0 投票
2 回答
24885 浏览

php - Yii2,带有属性名称的自定义验证消息

在登录表单中,我需要glyphicon-remove在每条验证消息的末尾都有一个带有相应字段名称的图标。所以我在Login model.

除了上面的代码之外,是否有任何可能的方法来使用类似下面的代码。

上述代码的思想是为每个字段动态获取对应的字段名称。

请只做那些需要的。谢谢。

更新

我在这里使用的HTML代码(<span class="glyphicon glyphicon-remove"></span>)是通过使用正确输出的encode=>'false'。但是我需要的不是为每个字段单独定义,而是需要为所有字段共同定义。

0 投票
2 回答
2066 浏览

php - Yii2,自定义验证:clientValidateAttribute() 无法正常工作

我有由 ActiveForm 小部件创建的表单。用户在那里输入波兰邮政编码。在适当的控制器中,我将输入的数据放入数据库中,例如:

我决定使用独立验证器进行邮政编码验证。模型中此属性的规则

app/components/validators/PostalValidator 类代码

因此,正确代码的示例是00-202

当我(以用户角色)输入不正确的值时,页面重新加载并且我看到了Wrong postal code format.消息,尽管我重新定义clientValidateAttribute了方法并编写了JS-validation,正如我所建议的那样,它不允许页面重新加载。然后我再次按下提交按钮:这次页面没有重新加载,我看到Invalid status input.了消息(所以,第二次按下时间 JS 触发)。但是当我在那之后输入正确的代码时,我仍然看到Invalid status input.消息并且没有任何反应。

那么,我的clientValidateAttribute()方法有什么问题?validateAttribute()效果很好。

更新 来自控制器的片段

0 投票
1 回答
358 浏览

yii2-validation - 如何手动验证 yii2 中的数据?

我编写了一个创建 6 位数字的函数。

如何在不使用 yii2 中的模型的情况下手动验证这个数字?

0 投票
2 回答
484 浏览

php - 受保护的目录存在并在 Yii2 中创建自定义验证器

我正在寻找 Yii2 的密码强度计。我为 Yii1 找到了这篇文章。我看到protected那里提到的目录。我找不到这个文件夹。它在基本应用程序模板或高级应用程序模板中可用吗?

0 投票
1 回答
750 浏览

yii2 - 如何在更新时更改数据时验证数据是否唯一

我有书表和 isbn 字段。用户更新现有图书时,如果更改了isbn代码并保存,则isbn应检查为唯一,否则必须跳过唯一验证。

有唯一的验证,但它正在检查即使 isbn 在更新时没有更改。

我有一个想法。一个变量将被添加到 Book 模型以保持 isbn 的旧值。更新记录时,将比较旧值和新值。如果更改,将运行自定义验证。

这是最佳方式还是有更好的方法来做到这一点?

0 投票
2 回答
6081 浏览

php - Yii2 从整数转换为日期时间以显示并以整数保存到数据库中

我有一个表,其中的列for_date按数据库中的整数类型保存。为了以for_dateDateTime 格式显示,我使用了带有代码的 ActiveForm:

但是当我创建和保存时,Yii 通知了This field must be integer

在模型文件中,我有以下 2 个函数在验证之前进行转换,但它仍然是错误的。

我怎样才能正确地用整数保存到数据库中?