【问题标题】:Cakephp automated validation generation from MySQL database constraints从 MySQL 数据库约束生成 Cakephp 自动验证
【发布时间】:2013-12-19 07:45:57
【问题描述】:

我正在寻找一种简单的解决方案,以便从 Cakephp 中的数据库约束自动生成模型中的验证规则,因为我不想用蛋糕烘焙手工完成所有这些。所以例如如果数据库中的字段存在 NOT NULL 约束,则应为该字段创建“非空”验证规则。

那么有没有可以做这种事情的工具呢?

【问题讨论】:

    标签: database validation cakephp constraints


    【解决方案1】:

    CakePHP 默认不支持这个,但我喜欢这个主意。

    但是您可以通过重载 AppModel::__construct()、将代码添加到 AppModel::beforeValidate() 回调、使用模型正在使用的表的 CakeSchema 加载架构以及循环它返回的模式并动态构建规则并将它们设置为 $this->validate.

    如果您不想要特定模型,您可以添加另一个属性,例如 boolean autoValidationRules。还要检查 notEmpty 是否尚未设置,不要自动覆盖或合并它,这取决于您的需要。

    编辑:试试这个行为,我只是把它拼凑在一起,因为我喜欢这个主意。今晚晚些时候将添加一个单元测试。

    https://github.com/burzum/BzUtils/blob/develop/Model/Behavior/AutoValidateBehavior.php

    【讨论】:

    • beforeValidate 可能是一个更好的建议(或实现 beforeValidate 的行为) - 即在需要之前不要做任何事情。 +1。
    • 没错,由于某种原因,构造函数是我在阅读本文时首先想到的。
    【解决方案2】:

    CakePHP 中确实没有为此提供内置功能。

    否则如果您不想使用控制台,您可以使用在线工具来设计您的应用程序:模型、关系和验证规则,然后自动生成对列具有正确约束的 SQL 文件,您的模型具有字段、控制器和视图的相应验证规则:Online Cake Bake

    您不会完全按照自己的意愿去做,但至少您可以同时设计数据库的约束和验证规则,从而节省大量时间。

    【讨论】:

      猜你喜欢
      • 2015-09-30
      • 2013-05-21
      • 2017-03-24
      • 1970-01-01
      • 1970-01-01
      • 2021-06-29
      • 2013-07-24
      • 1970-01-01
      • 2012-04-01
      相关资源
      最近更新 更多