Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Doctrine][Symfony2] jak korzystać z klasy Doctrine.Common.Collections.ArrayCollection na obiektach repozytorium
Forum PHP.pl > Forum > Przedszkole
twojastara
Chciałbym móc zrobić parę rzeczy z obiektem z bazy danych

  1. $foo= $this->getDoctrine()->getRepository('AppBundle:Foo')->find($id);


interesują mnie funkcje takie jak w tej klasie doctrine-project.org/api/common/2.1/class-Doctrine.Common.Collections.ArrayCollection.html

ale nie wiem jak korzystac z tej klasy z moim obiektem $foo tym bardziej, że kontruktor klasy ArrayCollection przyjmuje tablicę a nie obiekt.
Crozin
Skorzystać z jakich funkcji? Jak? W jakim celu?
twojastara
Trafiłem na tę klasę przypadkiem, w poszukiwaniu jakiejść funkcji, która by mi sprawdziła czy obiekt bazy danych coś zawiera czyli np isEmpty() z tej klasy by pasowało. No, ale rozumumiem po twoich pytaniach, że to od czapy.

Użyłem funckcji php is_object dla obiektu $foo , więc nie potrzebuje juz tej klasy, ale skoro istnieje taka klasa a głowiłem się jak jej użyć to zapytałem.
Crozin
Ale co może mieć metoda ArrayCollection::isEmpty() wspólnego z Twoją klasą czy funkcją is_object? Jak niby miałaby ona cokolwiek realizować?
twojastara
nie wiem, nie znam się, boli mnie ucho. W przedszkolu nie powinno sie zdawać takich pytań. Napisz do czego używa się tej klasy, albo nie napisz.

Chciałem wiedzieć czy
  1. $foo= $this->getDoctrine()->getRepository('AppBundle:Foo')->find($id);

jest puste.

Dlatego w google wpisałem: doctrine repository check if empty. Kliknąłęm w Stackoverflow w którym ktoś tej klasy użył.

Rozumiem, że to od czapy, głupi temat otworzyłem, więc nie brnijmy.
kpt_lucek
ArrayCollection o którego pytasz, jest Iteratorem używanym przez Doctrine.

Możesz go spotkać w relacjach, chociażby Many2Many
  1. <?php
  2.  
  3. namespace My\CostamBundle\Entity;
  4.  
  5. use Doctrine\ORM\Mapping as ORM;
  6. use Doctrine\Common\Collections\ArrayCollection;
  7. use Acme\DemoBundle\Entity\JakasInnaEncja;
  8.  
  9. /**
  10. * @ORM\Table()
  11. * @ORM\Entity
  12. */
  13. class JakasEncja
  14. {
  15.  
  16. /**
  17.   * @var ArrayCollection|JakasInnaEncja[]
  18.   * @ORM\ManyToMany(targetEntity="Acme\DemoBundle\Entity\JakasInnaEncja", mappedBy="jakasEncja")
  19.   */
  20. protected $jakasInnaEncja;
  21.  
  22. public function __construct()
  23. {
  24. $this->jakasInnaEncja= new ArrayCollection();
  25. }
  26.  
  27. /**
  28.   * @return ArrayCollection|JakasInnaEncja[]
  29.   */
  30. public function getJakasInnaEncja()
  31. {
  32. return $this->jakasInnaEncja;
  33. }
  34.  
  35. }


Wywołując JakasEncja->getJakasEncja() dostaniesz ArrayCollection którego zawartością będzie tablica obiektów JakasInnaEncja, lub tablica pusta, czyli Iterator nie będzie miał po czym iterować.

Ot cała filozofia

Cytat(twojastara @ 16.04.2015, 00:21:02 ) *
nie wiem, nie znam się, boli mnie ucho. W przedszkolu nie powinno sie zdawać takich pytań. Napisz do czego używa się tej klasy, albo nie napisz.

Chciałem wiedzieć czy
  1. $foo= $this->getDoctrine()->getRepository('AppBundle:Foo')->find($id);

jest puste.

Dlatego w google wpisałem: doctrine repository check if empty. Kliknąłęm w Stackoverflow w którym ktoś tej klasy użył.

Rozumiem, że to od czapy, głupi temat otworzyłem, więc nie brnijmy.



  1. $foo= $this->getDoctrine()->getRepository('AppBundle:Foo')->find($id);
  2. if(null === $foo){
  3. // brak rekordu
  4. }
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.