【发布时间】:2013-12-19 07:45:57
【问题描述】:
我正在寻找一种简单的解决方案,以便从 Cakephp 中的数据库约束自动生成模型中的验证规则,因为我不想用蛋糕烘焙手工完成所有这些。所以例如如果数据库中的字段存在 NOT NULL 约束,则应为该字段创建“非空”验证规则。
那么有没有可以做这种事情的工具呢?
【问题讨论】:
标签: database validation cakephp constraints
我正在寻找一种简单的解决方案,以便从 Cakephp 中的数据库约束自动生成模型中的验证规则,因为我不想用蛋糕烘焙手工完成所有这些。所以例如如果数据库中的字段存在 NOT NULL 约束,则应为该字段创建“非空”验证规则。
那么有没有可以做这种事情的工具呢?
【问题讨论】:
标签: database validation cakephp constraints
CakePHP 默认不支持这个,但我喜欢这个主意。
但是您可以通过重载 AppModel::__construct()、将代码添加到 AppModel::beforeValidate() 回调、使用模型正在使用的表的 CakeSchema 加载架构以及循环它返回的模式并动态构建规则并将它们设置为 $this->validate.
如果您不想要特定模型,您可以添加另一个属性,例如 boolean autoValidationRules。还要检查 notEmpty 是否尚未设置,不要自动覆盖或合并它,这取决于您的需要。
编辑:试试这个行为,我只是把它拼凑在一起,因为我喜欢这个主意。今晚晚些时候将添加一个单元测试。
https://github.com/burzum/BzUtils/blob/develop/Model/Behavior/AutoValidateBehavior.php
【讨论】:
CakePHP 中确实没有为此提供内置功能。
否则如果您不想使用控制台,您可以使用在线工具来设计您的应用程序:模型、关系和验证规则,然后自动生成对列具有正确约束的 SQL 文件,您的模型具有字段、控制器和视图的相应验证规则:Online Cake Bake。
您不会完全按照自己的意愿去做,但至少您可以同时设计数据库的约束和验证规则,从而节省大量时间。
【讨论】: