我有一个schema.yml包含类似于以下内容的东西:
Character:
tableName: characters
actAs: { Timestampable: ~ }
columns:
id: { type: integer(4), primary: true, autoincrement: true }
name: { type: string(255), notnull: true, notblank: true, minlength: 3 }
Run Code Online (Sandbox Code Playgroud)
我将列名的最小长度定义为3.我创建了一个单元测试来测试minlength验证,我发现验证不起作用.
$character = new Character();
$character->set('name', 'Dw');
$t->ok(! $character->isValid()); # This test failed
Run Code Online (Sandbox Code Playgroud)
谁能告诉我这里可能出现什么问题?
谢谢,安德里
我找到了.
默认情况下,Doctrine的验证处于关闭状态,因此您必须使用以下代码将其打开:
$manager = Doctrine_Manager::getInstance();
$manager->setAttribute(Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL);
Run Code Online (Sandbox Code Playgroud)
在Symfony中,我将以下代码添加到/config/ProjectConfiguration.class.php
public function configureDoctrine(Doctrine_Manager $manager)
{
$manager->setAttribute(Doctrine::ATTR_VALIDATE, Doctrine::VALIDATE_ALL);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
897 次 |
| 最近记录: |