首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

yii2中自定义验证规则rules以及rules失效的解决方案

先来说说场景: 条件:①、有两个字段分别是A和B ②、A有两个值分别是1和2 需求是:当用户选择的A的值等于1的时候,B的值必须填写,当A的值等于2的时候,B的值不写也没关系。其中A必选。...attribute, $params) { if ($this->A== 1) { if ($this->$attribute=== "") $this->addError...以上只是举了一个简单的例子,可以根据具体需求应用。 注意项: 在当前例子中,如果B字段的值为空或者已经在其他验证中失败时,我们自定义的rules规则不会生效。...,否则失效,除非强制非真有效 另需要提醒的是: 自定义的验证方法不支持客户端校验,也就是说鼠标失去焦点后不会自动校验,只有在表单提交后才会校验!...答1、 $params 实际上是yii\validators\InlineValidator的属性,你可以在规则上添加params属性,比如 ['id', 'customFunction', 'params

3.1K51
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    定义多场景的表单

    定义多场景的表单 下面是一个带有添加/编辑的文章表单示例: namespace app\forms; use Yii; use app\models\Article; class ArticleForm...$article){ $this->addError('id', '无效的文章ID'); return; } $this->_article = $article; } public...validate的时候,底层会自动在rules找到相关的规则进行校验,不会对无关的属性规则进行校验 控制器调用示例 public function actionAdd(){ $form = new ArticleForm...,执行add或edit这些业务处理方法前(其实是validate被执行之前),一定要先设定scenario属性(属性值就是场景的标识) 最终其实就是为了告诉validate要对哪些属性进行validate...,而不是盲目地全部validate,毕竟不同场景下有不同的校验字段 深入应用 其实不能仅仅把场景理解为使用在validate控制上的,自己在form里面写的逻辑代码都可以if($this->scenario

    45241

    salesforce 零基础学习(六十九)当新增修改一条记录以后发生了什么(适合初学者)

    相关字段必填性配置可以放在page layout做限制; 4.如果请求来自自定义的VF页面或者apex进行匿名块操作,则先忽略相关pagelayout上的必填性校验,执行before trigger内容...; 5.运行系统的校验,比如字段级别的必填性,validation rule; 6.当通过validation rule以后,执行save操作,此时数据保存到DB,不过事务上还没有commit,在after...进行了addError操作,导致事务回滚,添加失败。...field update以后会重新执行before trigger,workflow rules可以设置field update只是进行一次还是每次更改都会进入workflow rules,这里根据需求好好选择...,避免和trigger作用发生死循环; 10.如果有rollup summary字段,更新rollup summary; 11.提交事务,此时才真正事务commit,7-10期间 如果有addError

    72380

    ArcGIS Pro创建python脚本工具

    再在工具箱上右键创建脚本工具,在脚本工具属性中导入.py文件,并且可以设置工具以下属性。 04 — 配置脚本工具参数 配置过程包括了修改代码接收参数,工具属性中配置参数。...05 — 自定义工具行为,消息与错误处理 工具属性界面Validation可以使用ToolValidation类自定义工具行为,比如启用和禁用参数,设置默认值,脚本工具是否具有执行许可等,代码已嵌入到脚本工具中...自定义行为,消息与错误处理配合使用能增强代码逻辑和可执行性。...SetProgressorLabel()可以根据步长完成比例更新进度标签。...ID列表 randomlist = random.sample(inlist, outcount) desc = arcpy.Describe(inputfc) # 获取OID字段名

    1.6K50

    Salesforce LWC学习(二十一) Error浅谈

    lwc开发的时候,我们在进行正常的业务处理基础上,也需要考虑捕捉异常系,对异常的内容根据正确的业务进行跳转到不同页面或者展示不同的报错信息等处理。...自定义处理有两种方式,一种是无表单DML操作,展示toast信息。另一种是有表单,在头部或者字段处展示错误信息。根据这些简单信息进行强化。 一....这种通常有两种情况,一个是validation rule中的error location为field级别,另外一种是trigger中的具体的sObject的某个字段的addError操作。...针对自定义异常的捕捉以及展示实现 这种展示实现不同项目有不同的要求,我们参考标准画面以及具体的业务大概可以分成两种展示形式: Toast展示具体错误信息 & form表单中展示page level在头部...,error level在具体字段信息。

    1.2K10

    k3cloud开发实例

    主要用于新建表达根据元数据定义初始化数据包后,根据特殊需求,改变当前数据。 通常我们在IDE里通过配置实体服务规则实现表单字段的缺省值赋值: 但有时需要根据一些参数动态设置值时,就需要用插件实现。...为此,BOS平台在操作上提供了校验服务,这样在系统内部通过插件调用服务前会自动执行校验服务。而外部系统访问的是BOS操作发布的服务本身也带有校验。...优先通过IDE配置校验数据,如输入格式,最大最小值限定; 2.    操作控制类校验在表单的操作前插件检查; 3.    业务控制类校验在表单校验服务校验。...简单生产领料单保存前,根据当前单据删除的领料单分录获取关联的源单分录,在保存后,检测简单领料分录是否仍存在该分录ID上拉的行,然后再判断应该更新简单领料分录还是源单分录,重置该分录行的领料标识。...增加下拉列表,显示单据头的所有字段; 2.      在分录菜单上增加库存查询(FQueryInventory)菜单项; 3.

    4.2K12

    结合使用 C# 和 Blazor 进行全栈开发

    也许最值得一提的是,可以在客户端和服务器上使用一个库进行验证。...使用 Blazor,可以在客户端和服务器上运行同一 .NET Core 库。 虽然 Blazor 仍是试验框架,但它的进展迅速。...是时候添加 GetValue 方法了,它需要使用 fieldname 参数,并使用反射来查找此模型中的字段并返回字段值。...它使用反射来查找此模型中的字段,并更新字段值。然后,它触发 CheckRules 方法,以对相应字段验证所有规则。Blazor 客户端使用此方法,以在用户在输入文本框中键入内容的同时更新值。...十年来,他一直致力于在 Microsoft 堆栈上开发产品,并在 .NET 出现之后,致力于在其上进行编程。

    6.7K40

    Salesforce学习 What is Trigger in Salesforce?

    什么时触发器: 触发器是一个Apex代码,用于在操作记录之前或之后执行操作。...这些操作可以是: image.png 触发器主要有两种类型: Before Trigger: 用于在将记录的值保存到数据库之前对其进行更新或验证,然后再保存它。...After Trigger: 用于访问系统设置的字段值,并影响记录中的任何更改。换句话说,在这里一般用于更改其他Object的值。...Before Trigger中只对进入trigger的数据进行字段的更改,不要使用DML操作 3. After Trigger中对除本对象外的数据进行DML操作 4....尽量不要在Trigger逻辑复杂的对象上创建field update的workflow,因为workflow执行顺序在after trigger之后,所以workflow执行update之后,很容易导致

    81710

    ModelBuilder与空间建模

    根据输入输出用连接工具将三个工具串联起来。多没被串起来的,多的部分用选择工具选中后删除。   ...前提条件设置   前提条件类似于编程语言中的if…else语句,if里面的程序块要想执行,则if括号内的判断条件必须成立,否则程序块不执行。...) 模型中仅模型工具介绍 计算值   表中没有相应字段则添加字段,有则不加 收集值   收集值工具专用语收集迭代器的输出值或将一组多值转换为一个输入,手机值得输出可用作合并、追加、镶嵌和像元统计等工具的输入...Python 为什么要学习Python ArcGIS内置Python,在Esri中推荐的是Python,在字段计算器和标注等地方,ArcGIS中支持VB和Python语言,在ArcGIS Pro中更多的是...ArcGIS Python的其他例子 更新字段值为顺序号 ####################### import arcpy from arcpy import env import os import

    1.4K20

    理解unittest测试框架(二)框架核心——case

    在这个函数中编写用例 unittest测试框架最终会把函数当成一条测试用例去执行。 在执行的过程中,unittest测试框架会根据参数来打印不同详细程度的执行日志。...init 在测试的初始化中,主要的功能就是定义一些全局的信息,比较关键的有两个点。 第一,入参中传入methodName,默认值是runTest。...这里监听了几个异常,如果有抛错跳过,那么就停止执行,如果监听到了KeyboardInterrupt异常,这个异常实际上就是我们在执行的时候按下Ctrl+C的信号引发的异常。...值得注意的是,如果清理函数执行失败了,用例也会被当成失败的。 如果根据平时写用例来看,到这里似乎流程就跟踪完了。实际上我们看代码之后发现,还没有结束。...而使用这个修饰器的函数,传入的就是默认值。所以在run中执行的testMethodName就是这个runTest方法。 总结 本文介绍了unittest测试框架中的测试用例是如何运行的。

    86120
    领券