1

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

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

4

2 回答 2

3

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

但是您可以通过重载 AppModel::__construct()来实现它,将代码添加到 AppModel::beforeValidate() 回调中,通过使用 CakeSchema 为模型正在使用的表加载模式并循环它返回的模式并在其上构建规则苍蝇并将它们设置为 $this->validate。

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

编辑:试试这种行为,因为我喜欢这个主意,所以我只是把它破解了。今晚晚些时候将添加一个单元测试。

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

于 2013-07-24T14:19:36.813 回答
0

事实上,CakePHP 中没有为此提供内置功能。

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

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

于 2013-07-24T14:50:57.653 回答