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

Doctrine pobieranie z MySql

0 głosów
632 wizyt
pytanie zadane 17 lipca 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

Cześć 

Chcę na szybko zrobić pobieranie w controlerze Symfony i stworzyłem coś takiego według dokumentacji Symfony:

$entityManager = $this->getDoctrine()->getManager();
    $entityManager -> getRepository(Mixture::class);//->findBy(array(),array(),8,58);

    $query = $entityManager->createQueryBuilder('m')
        ->Where('m.riskScore  =:price')
        ->setParameter('price', '4')
        ->orderBy('m.riskScore', 'ASC')
        ->getQuery();

    $products = $query->getResult();


    return $this->render('GeneratorPDF/index.html.twig',['take'=>$products]);

Lecz nie za bardzo działa a ja nie mogę znaleźć błędu z góry dziękuje za pomoc 

2 odpowiedzi

0 głosów
odpowiedź 17 lipca 2019 przez Mariusz08 Maniak (62,240 p.)
Nie pobierasz repository.
komentarz 17 lipca 2019 przez michal_php Stary wyjadacz (13,700 p.)
W sensie to muszę wrzucić do folderu Repository ?
komentarz 17 lipca 2019 przez Mariusz08 Maniak (62,240 p.)
Nie. Musisz najpierw pobrać repozytorium a dopiero potem wykonywać na nim zapytanie.
komentarz 17 lipca 2019 przez michal_php Stary wyjadacz (13,700 p.)
Nie za bardzo rozumiem.Jak pobrać repozytorium skąd ?
komentarz 17 lipca 2019 przez Mariusz08 Maniak (62,240 p.)
No w Twoim kodzie już pobierasz repozytorium więc powinieneś wiedzieć. Jeśli nadal nie wiesz, odsyłam do dokumentacji Doctrine.
komentarz 17 lipca 2019 przez michal_php Stary wyjadacz (13,700 p.)

Ok.Już rozumiem o co chodzi.

$entityManager = $this->getDoctrine()->getManager();
        $take = $entityManager -> getRepository(Mixture::class);//->findBy(array(),array(),8,58);

        $query = $take->createQueryBuilder('m')
            ->Where('m.riskScore  =:number')
            ->setParameter('number', 1)
            ->getQuery();

        $products = $query->getResult();


        return $this->render('GeneratorPDF/index.html.twig',['take'=>$products]);

Ale przy czymś takim nic w ogóle mi nie znajduje . tzn mam zero wyszukań jak by nic nie szukał 

0 głosów
odpowiedź 17 lipca 2019 przez mordimer Mądrala (5,720 p.)

Po pierwsze zapytania buduj w metodach repozytorium a nie w kontrolerze ... ale jak już bardzo chcesz:

$entityManager = $this->getDoctrine()->getManager();
$mixtureRepository = $entityManager->getRepository(Mixture::class);

$query = $mixtureRepository->createQueryBuilder ....

 

komentarz 18 lipca 2019 przez michal_php Stary wyjadacz (13,700 p.)

A mam takie pytanie czy i jak ? Używając poleceni count aby sprawdzić ile jest wszystkich rekordów w tabeli mysql. Jak można i czy można użyć aby sprawdzić ile jest rekordów i jednocześnie pobrać określoną liczbę sql? coś takiego :

        $query = $take->createQueryBuilder('m')
            ->select('m.id, COUNT(m.id) as num_tags')
            ->setMaxResults(8)
            ->setFirstResult(1)
            ->orderBy('m.createdAt', 'DESC')
            ->getQuery();

 

komentarz 18 lipca 2019 przez mordimer Mądrala (5,720 p.)

Przekaz poprostu do repozyturium jakiś parametr którym bedziesz sterować :

public function findByMultiConditions($onlyCount)
$query = $take->createQueryBuilder('m')
    ->select(($onlyCount ? 'COUNT(m.id) as num_tags' : 'm'))
    ...

i finalnie w dwóch różnych zmiennych masz kolekcje i counta:

$itemsCount = $em->getRepository(Test::Class)->findByMultiConditions(true);
$items = $em->getRepository(Test::Class)->findByMultiConditions(false);

 

komentarz 24 lipca 2019 przez michal_php Stary wyjadacz (13,700 p.)
A czy jest wartość $onlyCount ?
komentarz 26 lipca 2019 przez mordimer Mądrala (5,720 p.)
Flagą którą sterujesz czy tylko liczyć rekordy w bazie czy chcesz zwrócić ich kolekcje ... potrzebne by tam były też inne parametry do paginacji czy do czego ty tam tego potrzebujesz.

Podobne pytania

0 głosów
2 odpowiedzi 2,596 wizyt
0 głosów
1 odpowiedź 241 wizyt
pytanie zadane 22 lutego 2020 w PHP przez XiverKi Bywalec (2,050 p.)
0 głosów
0 odpowiedzi 704 wizyt
pytanie zadane 15 listopada 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

93,776 zapytań

142,736 odpowiedzi

323,388 komentarzy

63,381 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...