J0H*_*0HN 15
双向和单向是关于PHP对象中的引用.
正如您在此处看到的,单向和双向引用的数据库模式实际上是相同的.不同之处是:
拥有和反向的概念是关于将对象模型更改持久化到数据库.这是详细的解释.
简而言之,Doctrine 2不跟踪对象模型的变化.让我们说你有两个clasees:
Parent和Child.班级Parent有收藏children.班级'孩子'有参考parent.以下代码将使您的数据模型不一致:
$parent = new Parent();
$child = new Child();
$parent->children->add($child);
Run Code Online (Sandbox Code Playgroud)
在实体类中使用公共属性是一个坏主意,而且非常气馁,但出于演示原因,它是可以的.所以,下面的代码添加$child到$parent,但没有设置$child->parent.域模型变得不一致(这就是Doctrine手册建议将关联逻辑封装到实体模型中的原因),但仍然可以将该对象持久保存到DB.
这就是拥有和反面的概念变得重要的地方.学说将根据拥有方的状态保持实体关系.所以,在我们的例子中,$parent=> $child关系将是:
Parent阶级Child阶级请注意,拥有方标有反向关联注释.
有关选择拥有和反面的建议.
| 归档时间: |
|
| 查看次数: |
3768 次 |
| 最近记录: |