Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Symfony][Symfony2][SF]Wyciąganie z bazy danych za pomocą specjalnych kryteriów ,problem
szypi1989
post
Post #1





Grupa: Zarejestrowani
Postów: 207
Pomógł: 0
Dołączył: 7.09.2010

Ostrzeżenie: (0%)
-----


Witam. Otóż Chciałem wyciągnąć z bazy danych z projektu sklepu samochodowego ( taki wymyślony dla testu) w symfony 2.8 , wszystkie samochody które mają cenę powyżej 3000 i mniej niż 8000 ale jakoś mi to nie wychodzi poprzez funkcję findBy:

  1. $entities = $em->getRepository('SzypiBundle:Cars')->findBy(array("price" => ">3000"));


Oto chodzi , żę znak ">" nic nie rusza moich wyników . Chciałbym także aby wyciągnać z bazy danych także poniżej wartośći kolumny price.
Czyli coś takiego price > 3000 i price < 3000.
Jak nie można zrobić to za pomocą findBy to jak najlepiej to zrobić i najwygodniej?

Ten post edytował szypi1989 10.08.2017, 11:52:01
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
ohm
post
Post #2





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


Wrzuc sobie do Repository normalną metodę z przedrostkiem find typu findByPrice($from, $to) i użyj stwórz tam zapytanie querybuilderem z podanymi parametrami.
Go to the top of the page
+Quote Post
szypi1989
post
Post #3





Grupa: Zarejestrowani
Postów: 207
Pomógł: 0
Dołączył: 7.09.2010

Ostrzeżenie: (0%)
-----


Rozumiem. Ale ja potrzebuje tam więcej ograniczeń niż tylko kolumna (price). Muszę założyć ogarniczenia na parę kolumn. Po prostu tak to tylko podałem.

Ten post edytował szypi1989 10.08.2017, 12:00:24
Go to the top of the page
+Quote Post
ohm
post
Post #4





Grupa: Zarejestrowani
Postów: 623
Pomógł: 144
Dołączył: 22.12.2010

Ostrzeżenie: (0%)
-----


No to robisz jakies findByParameters($parameters) i ogarniasz co tam trzeba.
Go to the top of the page
+Quote Post
Pilsener
post
Post #5





Grupa: Zarejestrowani
Postów: 1 590
Pomógł: 185
Dołączył: 19.04.2006
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Dobrze jest używać ORMa w takiej kolejności:

1. Obiekt encji (np. $articles = $user->getArticles())
2. Repozytorium + standardowe findBy
3. Repozytorium + matching:
  1. $c = new \Doctrine\Common\Collections\Criteria();
  2. $c->where($c->expr()->gt('costam', 999));
  3.  
  4. $data = $repo->matching($c);

4. Query builder
5. DQL
6. Native query

Jest to istotne, gdyż przy 1-3 mamy pełne wsparcie ORM.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 04:58