Yii2:如何动态地向模型类添加验证规则



根据 Yii2 文档,验证规则可以应用于隐式属性(表字段)或 userDefined 属性。

有没有办法为动态添加到模型类的属性创建验证规则?

例如:

让有名为"过滤器"的模型类和另一个名为"类别"的模型类 - 笔记本电脑、掌上电脑、台式机等类别。我可能想使用触控板区域作为笔记本电脑类别的过滤器之一,对角线长度作为掌上类别的过滤器之一,依此类推。因此,在每种情况下,过滤器条件都会根据我选择的类别而有所不同,我可能希望将其动态添加到模型类 Filter 中,并验证通过 post 加载是否成功。

您可以对 rules() 函数进行编码,以根据方案和数据输入生成验证规则数组。不要求这是一个固定数组。不幸的是,这样做会给你留下前端的验证问题(如果你需要的话),那里的动态规则不能很好地工作。

从我收集到的评论中,最大的问题似乎是属性没有加载到模型中。这主要是因为load()setAttributes()都只填充被视为safe的属性。

有两种方法可以将属性定义为安全属性:

  • 给它一个验证规则(至少safe
  • safeAttributes()返回的属性列表中获取它(通过覆盖它)

相关内容

  • 没有找到相关文章

最新更新