gpt4 book ai didi

symfony - 保持我的 symfony2 包解耦

转载 作者:行者123 更新时间:2023-12-01 12:41:45 24 4
gpt4 key购买 nike

我有两个不同的包:

  • 第一个包 OrderBundle 具有核心逻辑和功能并包含订单实体。
  • 第二个包,CustomerBundle 依赖于 OrderBundle 并包含 Customer 实体。

我需要在 Customers 和 Orders 之间创建一个 oneToMany 关系(显然一个 Customer 做很多订单)但是我需要保持第一个 bundle OrderBundle 与第二个 bundle 分离,因为 OrderBundle 旨在被重用用于其他内容。

我认为正确的方法可能是这样的http://symfony.com/doc/current/cookbook/doctrine/resolve_target_entity.html但我不知道如何具体实现。

如果我不能在 ManyToOne Doctrine 映射中专门使用像 targetEntity 这样的 Customer,如何实现 Order 和 Customer 之间的关系?

非常感谢,提前。

更新

我把涉及的代码写下来,以便更好的解释。

\\ Order\Bundle\Entity\Order.php

class Order {
/**
* @ORM\ManyToOne(targetEntity="Order\Bundle\Model\OrderSubjectInterface", inversedBy="orders")
* @var SourceSubjectInterface
*/
protected $subject; // How to define getter ans setter for $subject ? Do I
have to use php app/console doctrine:generate:entities command?
...



\\ Customer\Bundle\Entity\Customer.php
use Order\Bundle\Model\OrderSubjectInterface;

class Customer implements OrderSubjectInterface{
/**
* @ORM\OneToMany(targetEntity="Order\Bundle\Entity\Order", mappedBy="subject")
*/
private $orders;

如何定义getters、setters和接口(interface)?

最佳答案

是的,这是正确的方法。

如您提到的文档中所示,您可以将 OrderSubjectInterface 之类的内容指定为 ManyToOne 映射中的 targetEntity。

这样,您就知道您的订单与主题相关。在您的情况下,这些主题是客户,如 app/config/config.yml 中所定义。

关于symfony - 保持我的 symfony2 包解耦,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23866535/

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