• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Puste ArrayCollection - OneToMany

Object Storage Arubacloud
0 głosów
74 wizyt
pytanie zadane 28 października 2020 w PHP przez Ambroz Obywatel (1,840 p.)

Witam.
Pracuje obecnie na Symfony 3.4.37 i posiadam tabele, która odnosi się do samej siebie w relacji One-To-Many. Jest to wzór kategorii i ich podkategorii. Niestety kiedy próbuje wyciągnąć dane dotyczące rodzica i dzieci to collection: ArrayCollection nie zawiera żadnych elementów. Szukałem już po internecie i dokumentacji. Może coś przeoczyłem, jestem dość nowy w tym temacie.

Fotka z bazy:

Jak widać relacje w bazie są jakie są i teraz dostaje takie info z dumpa"

Kod Entity:
 

<?php

namespace WL\AppBundle\Entity;

use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\Common\Collections\Collection;
use Doctrine\ORM\Mapping as ORM;

/**
 * TestCat
 *
 * @ORM\Table(name="test_cat")
 * @ORM\Entity(repositoryClass="WL\AppBundle\Repository\TestCatRepository")
 */
class TestCat
{
    /**
     * @var int
     *
     * @ORM\Column(name="id", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @var string|null
     *
     * @ORM\Column(name="parent_id", type="integer", nullable=true)

     */
    private $parent_id;

    /**
     * Many to One
     * @ORM\ManyToOne (targetEntity="WL\AppBundle\Entity\TestCat", inversedBy="children")
     * @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
     */
    private $parent;


    /**
     * @ORM\OneToMany (targetEntity="WL\AppBundle\Entity\TestCat", mappedBy="parent")
     */
    private $children;


    /**
     * @var string
     *
     * @ORM\Column(name="description", type="text")
     */
    private $description;


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

    /**
     * @return Collection
     */
    public function getChildren(): ?Collection{
        return $this->children;
    }

    public function setParent($id):void{
        $this->parent = $id;
    }

    /**
     * Get id.
     *
     * @return int
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Set parent.
     *
     * @param null $parent_id
     * @return TestCat
     */
    public function setParentId($parent_id = null)
    {
        $this->parent_id = $parent_id;

        return $this;
    }

    /**
     * Get parent.
     *
     * @return integer|null
     */
    public function getParentId()
    {
        return $this->parent_id;
    }


    /**
     * Set description.
     *
     * @param string $description
     *
     * @return TestCat
     */
    public function setDescription(string $description)
    {
        $this->description = $description;

        return $this;
    }

    /**
     * Get description.
     *
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }
}

Wywołanie w Controllerze:

        $em = $this->getDoctrine()->getManager();
        $cats = $em->getRepository('WLAppBundle:TestCat')->findAll();
        dump($cats[0]->getChildren());die;

 

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 149 wizyt
pytanie zadane 30 września 2019 w Java przez JuniorPL Użytkownik (770 p.)
0 głosów
1 odpowiedź 155 wizyt
pytanie zadane 25 marca 2021 w PHP przez Ambroz Obywatel (1,840 p.)
0 głosów
2 odpowiedzi 97 wizyt
pytanie zadane 22 września 2020 w PHP przez nowyklemens Początkujący (430 p.)

92,573 zapytań

141,423 odpowiedzi

319,648 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...