Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 注释Symfony 2/条令2不同_Php_Symfony_Doctrine Orm - Fatal编程技术网

Php 注释Symfony 2/条令2不同

Php 注释Symfony 2/条令2不同,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,这两者有什么区别 /** * @ORM\ManyToOne(targetEntity="Category", inversedBy="products",cascade={"remove"}) * @ORM\JoinColumn(name="category_id", referencedColumnName="id") */ protected $category; 及 谢谢 第一个命令告诉ORM自己执行级联。因此,条令将在内存中保存数据,以执行自身的删除级联 第二个命令将通知数据库执行o

这两者有什么区别

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


谢谢

第一个命令告诉ORM自己执行级联。因此,条令将在内存中保存数据,以执行自身的删除级联

第二个命令将通知数据库执行onDelete级联,从doctrine中卸载该过程

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

第一个参数的典型用例是数据模型图不太重的情况,并且您确实希望适应每个实体生命周期事件,即使是使用级联删除的实体生命周期事件


第二种方法的缺点是,您无法适应这些实体生命周期事件,但如果您的数据模型/图形实在太重,这可能是处理级联的唯一选项。

编辑了我的第一篇文章:)希望这有帮助!确切地生命周期事件,例如本例中的preRemove或postRemove事件!:)
/**
 *
 * @ORM\ManyToOne(targetEntity="Category", inversedBy="products")
 * @ORM\JoinColumn(name="category_id", referencedColumnName="id", onDelete="CASCADE"))
 */
protected $category;