如何在Symfony2中从父对象中获取具有一对多关系的子对象

时间:2016-08-03 08:30:18

标签: php symfony oop

我有一个父对象是什么帐户。此帐户对象与其子对象具有一对多关系,即mailList。

Parent:

    class CusAccount
    {

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

        /**
         * @ORM\OneToMany(targetEntity="MailList", mappedBy="account")
         */
        private $mailList;

        /**
        * Get mailList
        *
        * @return \Doctrine\Common\Collections\Collection 
        */
        public function getMailList()
        {
              return $this->mailList;
        }

    }

Child:

class MailList
{

    /**
     * @ORM\ManyToOne(targetEntity="CusAccount")
     * @ORM\JoinColumn(name="account_id", referencedColumnName="id")
     */
    private $account;

    /**
    * @var string
    *
    * @ORM\Column(name="email", type="string", length=50)
    *
    */
   private $email;

}

向父项添加多个子项可以正常工作。我仔细检查了数据库。让第一个孩子回来也可以:

$child = $account->getMailinglist()->first();

现在我想通过电子邮件adres找到一个孩子。我找不到正确的代码吗?

1 个答案:

答案 0 :(得分:0)

您可以过滤集合以找到所需内容:

$allChildrenWithSearchedEmail = $account->getMailinglist()->filter(function($child) {
    return ($child->getEmail() == "info@example.com");
});