字段的临时标注不适用于导入选项或无法从选项创建行。如果我通过代码而不是手动选择操作,它将忽略字段标注。
我以为有一个解决方案,
将标注代码转移到模型类beforeSave()或afterSave()上,但这对于所有功能而言都非常耗时。
如果有其他解决方案,请分享
解决方案如下:
正确的是,标注仅在用户输入表单或表格时使用。如果您有需要以编程方式应用于数据更改的规则,则可以考虑以下几种选择:
正如您所提到的那样,模型发生了变化,但是除非本质上是通用的,否则它将使您的代码与核心项目有所不同,并使升级工作更加费力;
模型验证器-您可以注册一个模型验证器,该模型验证器将在持久性对象(PO)的保存之前或保存之后调用。
在表定义中,您可以定义表验证规则。
为避免对许多记录进行耗时的操作,如果您发现问题所在的区域,也可以将代码添加到导入验证器并“创建自”过程。
最后,您可以创建一个单独的过程来验证数据并在需要时在后台运行它。
另一方面,如果代码可以足够快地运行以进行用户标注(这意味着用户不会注意到明显的延迟),那么将代码添加到模型验证器中就可以了。