Questions tagged «doctrine»

Doctrine Project是一个开源库和工具的集合,这些库和工具用于处理用PHP编写的数据库抽象和对象关系映射。

7
主义-通过关系发现了一个新实体
自2周以来,我们在尝试刷新新元素时遇到了这个问题: 严重:Doctrine \ ORM \ ORMInvalidArgumentException: 通过关系'Comment#capture'找到了一个新实体,该关系未配置为级联实体的持久化操作 但是,capture已经在数据库中,并且通过来获取它findOneBy,因此,如果我们级联对其进行持久化,或者对它进行持久化,我们将获得一个 违反表约束:重复输入。 注释是在具有不同捕获内容的循环中创建的,并带有新的注释,并设置了所有必填字段。 在所有实体都持久存在和/或由findOne(以及所有有效)获得的情况下,刷新仍然失败。 一段时间以来,我一直在处理此问题,所以请帮助我
73 symfony  doctrine 

1
了解理论级联操作
我想检查一下我对Doctrine关联的级联运算的理解。出于这个问题的目的,我有两个模型:Customer和Insuree。 如果我在Customer和之间Insuree设置了多对多关系cascade{"all"},则可以理解: 向客户添加新的被保险人将保留该被保险人,并在联接表中创建关联。 从集合中删除被保险人将使保险人与客户分离,并使客户与被保险人分离。 删除客户将删除与该客户关联的所有保险。 这是上的关联的定义Customers。 /** * @ORM\ManyToMany(targetEntity="Insuree", inversedBy="customers", cascade={"all"}) * @ORM\JoinTable(name="customer_insuree", * joinColumns={@ORM\JoinColumn(name="customer_id", referencedColumnName="id")}, * inverseJoinColumns={@ORM\JoinColumn(name="insuree_id", referencedColumnName="id")} * ) */ protected $insurees; 如果我定义了InsureeandCustomer和set之间的逆多对多关系cascade{"all"},则可以理解: 向被保险人添加新客户将保留该客户并在联接表中创建关联。 从集合中删除客户将使客户与被保险人分离,并将客户与被保险人分离。 删除被保险人将删除与其关联的所有客户。 这是上的关联的定义Insurees。 /** * @ORM\ManyToMany(targetEntity="Customer", mappedBy="insurees", cascade={"all"}) */ protected $customers; 如果然后我定义持久化,合并和分离的关系-删除被保险人将不会删除所有关联的客户-只会删除被保险人与其客户之间的关联? /** * @ORM\ManyToMany(targetEntity="Customer", mappedBy="insurees", cascade={"persist", "merge", "detach"}) */ protected $customers;
72 php  doctrine  cascade 


4
在教义中如何使用andWhere and orWhere?
WHERE a = 1 AND (b = 1 Or b = 2) AND (c = 1 OR c = 2) 我该如何在学说中做到这一点? $q->where("a = 1"); $q->andWhere("b = 1") $q->orWhere("b = 2") $q->andWhere("c = 1") $q->orWhere("d = 2") 这不正确...应该是: $q->where("a = 1"); $q->andWhere("b = 1") $q->orWhere("b = 2") $q->andWhere("c = 1") $q->orWhere("d …
69 php  sql  doctrine 

1
Symfony2中ObjectManager和EntityManager之间的区别?
在自定义表单类型中使用它Doctrine\Common\Persistence\ObjectManager和Doctrine\ORM\EntityManager使用它之间有什么区别? 我可以使用$this->em->getRepository()和来获取存储库$this->om->getRepository()。 class MyFormType extends \Symfony\Component\Form\AbstractType { /** * @var Doctrine\ORM\EntityManager */ protected $em; public function __construct(Doctrine\ORM\EntityManager $em) { $this->em = $em; } } 代替: class MyFormType extends \Symfony\Component\Form\AbstractType { /** * @var Doctrine\Common\Persistence\ObjectManager */ protected $om; public function __construct(Doctrine\Common\Persistence\ObjectManager $om) { $this->om = $om; } }

1
不建议使用:教义\ ORM \ Mapping \ UnderscoreNamingStrategy(不使其知道数字)已弃用
我正在使用Symfony 4.3.8,但找不到有关这些弃用的任何信息: 不推荐使用的用户:不建议使用创建Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy而不知道其编号的方法已被弃用,并将在Doctrine ORM 3.0中将其删除。 不赞成创建Doctrine \ ORM \ Mapping \ UnderscoreNamingStrategy而不通知其编号的做法已被弃用,并将在Doctrine ORM 3.0中将其删除。 我在stacktrace中搜索,发现了这一点: class UnderscoreNamingStrategy implements NamingStrategy { private const DEFAULT_PATTERN = '/(?<=[a-z])([A-Z])/'; private const NUMBER_AWARE_PATTERN = '/(?<=[a-z0-9])([A-Z])/'; /** * Underscore naming strategy construct. * * @param int $case CASE_LOWER | CASE_UPPER …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.