【问题标题】:Doctrine Bidirectionnal relation can't access on some values学说双向关系无法访问某些值
【发布时间】:2018-07-15 22:45:02
【问题描述】:

我遇到了与 Doctrine 2 x Symfony 3 的 ManyToOne - OneToMany 关系的问题。

我创建了 2 个实体(我们将它们命名为 IPAddress 和 VPS),一个 VPS 可以有多个 ip,多个 ip 可以属于一个 VPS

我的 IP 地址实体:

class IPAddress
{
    ....
    /**
     * Many IPs have one server
     *
     * @ORM\ManyToOne(targetEntity="VPS", inversedBy="ips")
     */
    protected $server;

    /**
     * @return mixed
     */
    public function getServer()
    {
        return $this->server;
    }

    /**
     * @param mixed $server
     */
    public function setServer($server)
    {
        $this->server = $server;
    }
    ....
}

我的 VPS 实体:

Class VPS
{
    ....
    /**
     * One server have many IPs
     *
     * @ORM\OneToMany(targetEntity="IPAddress", cascade={"persist", "remove"}, mappedBy="server")
     */
    protected $ips;

    public function __construct()
    {
        $this->ips = new ArrayCollection();
    }

    /**
     * @return mixed
     */
    public function getIps()
    {
        return $this->ips;
    }

    /**
     * @param mixed $ips
     */
    public function addIps(IPAddress $IPAddress)
    {
        $this->ips->add($IPAddress);
        $IPAddress->setServer($this);
    }
    ....
}

当我尝试像这样通过我的 VPS 获取 IP 时:

$em = $this->getDoctrine()->getManager();

$serverRepo = $em->getRepository('AppBundle:VPS');
$server = $serverRepo->find(4);

$server->getIps();
//From there, there is no way to get my IPs, I only have a very big object without my IPs informations, only my columns' names marked as "null"

有人有什么想法可以帮助我解决这个问题吗?我从一天开始就在搜索,找不到我做错了什么..

提前致谢! :)

【问题讨论】:

  • 首先,您应该将 getIps() 的结果分配给一些变量,如下所示:$ips = $server->getIps();
  • 我已经尝试分配然后访问我的属性,但它也不起作用,这很奇怪,这不是我第一次处理这种关系而且我以前从未遇到过这个问题,我仔细检查了而且我看不出有什么问题..
  • 您尝试过什么“不工作”?除非您在检索 VPS 实体时尝试访问它或明确加入它,否则预计不会填充 ips 集合。你用什么来“访问”这些属性?

标签: php symfony doctrine-orm doctrine


【解决方案1】:

【讨论】:

  • 嗨!我已经查过了,这不是我的问题哈哈,这就是我现在如此绝望的原因
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-12-21
  • 1970-01-01
  • 2019-11-23
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 2017-01-22
相关资源
最近更新 更多