Yos*_*sef 2 orm doctrine datamapper doctrine-orm
我是学说2的新人.
为什么Doctrine 2没有基本的验证方法来验证所有值是否适合实体属性?
我的问题目标是更多地了解学说2如何工作以及为什么不说教义2中的错误.(主要是因为我是新的我错过了一些关于教义2设计方式的理解)
例:
<?php
// entities/User.php
/**
* @Entity @Table(name="users")
**/
class User
{
/**
* @Id @GeneratedValue @Column(type="integer")
* @var int
**/
protected $id;
/**
* @Column(type="string")
* @var string
**/
protected $name;
}
Run Code Online (Sandbox Code Playgroud)
使用build in validate的代码示例(不需要连接到db,只验证@Column(type ="integer"))在doctrine 2中不存在的基本函数:
$user=new User();
$user->setId('trtr');
$user->setName("goodname");
if($user->validate()){
echo 'ok';
}
else{
echo $user->validateError();
}
//output: id of User should be integer and not string
Run Code Online (Sandbox Code Playgroud)
谢谢
Doctrine ORM假定您持久存在的实体处于有效状态.这是持久层的唯一工作,并且向其添加验证将是错误的.如果您的实体中包含无效数据,则您已经拥有了无法保存的无效对象图.
所以请记住,如果你有一些像这样的API
$someEntity->isValid();
Run Code Online (Sandbox Code Playgroud)
然后有些东西可能是错误的,因为实体应该始终有效,并且它的任何依赖性应该在构造时设置并在setter/getters中处理,以便对象永远不会达到不一致状态.
| 归档时间: |
|
| 查看次数: |
2032 次 |
| 最近记录: |