gpt4 book ai didi

php - 注释不同 Symfony 2/Doctrine 2

转载 作者:可可西里 更新时间:2023-10-31 23:05:56 25 4
gpt4 key购买 nike

这两者有什么区别?

/**
* @ORM\ManyToOne(targetEntity="Category", inversedBy="products",cascade={"remove"})
* @ORM\JoinColumn(name="category_id", referencedColumnName="id")
*/
protected $category;

/**
*
* @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
* @ORM\JoinColumn(name="category_id", referencedColumnName="id", onDelete="CASCADE"))
*/
protected $category;

谢谢!

最佳答案

第一个告诉 ORM 自己执行级联。因此 Doctrine 会将数据保存在内存中以执行删除级联。

第二个将告诉数据库执行 onDelete 级联,从 doctrine 中卸载进程。

请记住,第一个选项会将数组/关联保存在内存中以执行删除级联,这可能非常繁重。

第一个参数的典型用例是您的数据模型图不是太重,并且您确实希望受益于每个实体生命周期事件,甚至是那些使用级联删除的事件。

第二个的缺点是你不能受益于这些实体生命周期事件,但如果你的数据模型/图真的太重,这可能是处理级联的唯一选择。

关于php - 注释不同 Symfony 2/Doctrine 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20571334/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com