问题标签 [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 回答
182 浏览

yii2 - Yii2 在创建时更改用户名

我希望我的应用程序检测用户名何时被使用并更改它。事实上,当用户注册自己时,他输入了他的姓氏和名字,用户名是 lastName.firstName。如何检测用户名已被使用以及如何更改它(例如添加一个数字)?

谢谢。

0 投票
1 回答
1091 浏览

php - yii2 下拉列表中的空值

我有一个活动表单中的下拉列表,我正确显示了数据,但是当我想插入下拉列表的选定值的值时,该值为空。

在我的控制器中:

在我看来 :

在模型中:

我有一个 IntegrityException,因为值为$this->idEtatRessourcenull(我的数据库中的主键)

谢谢 !

- -编辑 - -

当我通过$_POST['idEtatRessource']而不是$this->idEtatRessource它工作时,我不知道为什么!请帮忙 ;)

0 投票
1 回答
731 浏览

yii2 - Yii2:如何验证具有同一模型的多个实例的表单

在我的表格中,我一次更新了同一模型的更多开始和结束日期。见简化形式:

在我需要控制的模型中,如果结束日期在开始日期之后:

我尝试更改选择器,如:Yii2: Validation in form with two instances of same model中所述,但我没有成功。我想我需要在验证 JS 中将 'compareAttribute' 从 'mymodel-start' 更改为 'mymodel- 0 -start':

所以,我寻找类似的东西:

解决方案

该解决方案基于lucas的答案。

在模型中,我重写了 formName() 方法,因此对于每个日期,我都有一个唯一的表单名称(基于现有日期的 ID 和基于新日期的随机数):

然后表格如下所示:

0 投票
0 回答
87 浏览

php - 我正在以表单形式发送 _csrf 令牌,但我仍然收到 #400 无法验证 yii2 中的数据提交

即使在 ajax 帖子中,我也会以表单形式发送 _csrf 令牌,但我仍然收到 #400 无法验证 yii2 中的数据提交。我不想使用以下代码来避免此问题:

这不是永久的解决方案,因为应用此编码会破坏这里的安全性,这是我的 js 代码。

这是我的控制台标题和响应

标题图片 如您所见,我正在发送 csrf 令牌

响应图像 以及我得到的回应

请任何人知道如何解决这个问题,这将是一个很大的帮助

谢谢

0 投票
2 回答
272 浏览

php - 使用 XRegExp 进行 Yii2 验证,\p{L} 不起作用

我正在使用 Yii2 框架,并且我有一个Validator应该进行客户端验证的框架。我有一个看起来像这样的正则表达式:/^[\\p{L}]+$/u为简单起见,但我的实际正则表达式有点复杂,但 \p{L} 部分是导致问题的原因。

所以我在验证器类中的代码是这样的:

问题是,这对于 \p{L} 总是失败,但如果我改变类似 /^[AZ]+$/ 的模式,它可以完美地工作。

我正在使用 1.3.0 xregexp-all.js。它被添加到AssetBundle\assets\AppAsset.php 的一个类中

0 投票
1 回答
285 浏览

yii2 - 如何从查询到表进行验证?yii2

我的问题是:我有一个表单,其中我有 select2,用户可以从从表中填充的下拉列表中进行选择,所以,基本上我想要发生的是,当用户尝试选择驱动程序时,验证规则将发生,这将检查司机当天是否已经通过系统注册。

我知道怎么做填写表格,这个存档表中的每个字段都有一个 datecreated 列,这是输入字段的日期,所以基本上是他最后一次进来。

如果他已经输入了这一天,我如何制定一个要求该列与当天比较并给出错误的规则?规则应该在驱动程序模型中。(我的代码令人困惑,这就是我要澄清的原因,我是 Yii2 的新手)

我的观点(存档形式):

我的驱动程序模型:

我的存档模型:

在此处输入图像描述

0 投票
1 回答
1870 浏览

yii2 - 使用生成表单上的数据进行动态表单操作?yii2

基本上。我有两件事有问题:

  1. 我正在使用动态表单,用户可以根据需要添加任意数量的输入所有手头的发票。我有一个字段(invoice_loadamount),我想总结所有 invoice_loadamount 字段。因此,如果用户生成 3 个表单,我希望它汇总动态表单一(invoice_loadamount 字段 1)+ 动态表单二。(invoice_loadamount 字段 2)+ 动态表单三(invoice_loadamount 字段 3)。我怎么能做这个?从他生成的每个表格中自动总结这个字段?
  2. 我的第二个问题是,我想从表(车辆,列vehicle_capacity)中检索数据,然后以这样的方式进行比较,以验证总和是否大于vehicle_maxcap,如果是则给出错误。

在此处输入图像描述

在此处输入图像描述

我的表格:

我的存档模型:

我的车型:

我的发票模型:

我的控制器:

0 投票
1 回答
464 浏览

php - 如果选中复选框,则设置 Yii 场景

如果复选框被选中,我想在文本字段上应用所需的验证,否则没有。我通过场景尝试但它不起作用,对于表单我使用'bootstrap.widgets.TbActiveForm'我的Yii版本:1.1.16-dev

0 投票
2 回答
1527 浏览

php - Yii2 日期比较在规则中不起作用()

我有一个表格,用户必须输入开始日期和结束日期。

我在规则方法中使用了 compare 属性,因为用户无法输入开始日期之前的结束日期。

这是我在表单模型中的规则方法:

问题是如果用户输入的开始日期为 2016-05-18,结束日期为 2016-04-17,则会显示错误消息并且用户无法提交表单。但是如果用户输入 2016-05-18 的开始日期和 2016-04-23 的结束日期,则没有错误,用户无法提交表单。事实上,只有一天与这条规则进行比较。

编辑 根据这个链接:Yii2 Date compare validation,我创建了一个自定义验证方法,但我使用的是欧洲格式,所以我认为 strtotime 方法不是很好。这是我的 validateDates 方法:

这是此方法的调用:

0 投票
2 回答
689 浏览

yii2 - Yii2 : - 三个字段需要一条错误消息

我有日、月和年的三个下拉菜单。当我应用所需条件时,yii2 验证显示所有三个字段的单独错误。但是我想要三个字段的单个错误消息,例如“需要 dob”。

查看文件 :

模型 :

此代码分别向我显示所有三个下拉列表的错误消息。但我想要一个 dob 的错误消息:比如“dob 是必需的”。