У меня есть учетная запись сущности, которая является классической сущностью с детьми и родителями. То, как я это сделал, отношение SQL идентифицируется только с родителями.
Я хочу, чтобы у каждого объекта был список его дочерних элементов.
В простом PHP, я бы просто зациклился на mysql_fetch_array, чтобы иметь все мои учетные записи, и для каждого запроса снова к БД, где parent = id так, и помещаем это в свойство children (array) моего объекта учетной записи.
В Symfony2 / doctrine кажется, что я не могу этого сделать, по крайней мере, не так просто.
Как я буду делать?
edit: В моем контроллере это то, что я хотел бы сделать:
$COA = $this->getDoctrine()->getRepository('NRtworksChartOfAccountsBundle:Account')->findAll(); foreach($COA as $one_account) { echo $one_account.getChildren(); }
Но это не работает. Когда я передаю эту $ COA моей ветке, я могу на нее наброситься, но не на PHP.
<?php namespace NRtworks\ChartOfAccountsBundle\Entity; use Doctrine\ORM\Mapping as ORM; use Doctrine\Common\Collections\ArrayCollection; /** * @ORM\Entity * @ORM\Table(name="Account") */ class Account { /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") */ protected $id; /** * @ORM\Column(type="string", length=100, unique = true) */ protected $name; /** * @ORM\Column(type="string", length=50) */ protected $code; /** * @ORM\OneToMany(targetEntity="Account", mappedBy="parent") */ private $children; /** * @ORM\ManyToOne(targetEntity="Account", inversedBy="children") */ private $parent; public function __construct() { $this->children = new ArrayCollection(); } //getter & setter ?>