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

Doctrine pobieranie z MySql

Object Storage Arubacloud
0 głosów
227 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,300 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,300 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,300 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 1,848 wizyt
0 głosów
1 odpowiedź 97 wizyt
pytanie zadane 22 lutego 2020 w PHP przez XiverKi Bywalec (2,050 p.)
0 głosów
0 odpowiedzi 479 wizyt
pytanie zadane 15 listopada 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 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!

...