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

Symfony przekazywanie zmiennej

VPS Starter Arubacloud
0 głosów
219 wizyt
pytanie zadane 10 czerwca 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)

Cześć.

Mam pytanie jak można przekazać zmienna z kontrolera do repsitory mój kod:

Constoller

 /**
     * @Route("/seartch" , name="news_seartch")
     * @return \Symfony\Component\HttpFoundation\Response
     *
     * @param Request $request
     */
    public function seartchAction(Request $request)
    {
        if($request->request->get('found')){
            $found = $request->request->get('found');

            $entityManager = $this ->getDoctrine()->getManager();
            $news = $entityManager
                ->getRepository(Newstleter::class)
                ->findMyOrdered();

                  return $this->render("view/test.html.twig",["news"=>$news]);
        }

        return $this->redirectToRoute('');
    }

 Respository

class NewsRepository extends \Doctrine\ORM\EntityRepository
{
    /**
     * @param $found
     * @return array
     */
    public function findMyOrdered($found)
    {
        return $this
            ->getEntityManager()
            ->createQuery(
                "SELECT n 
                FROM AppBundle:Newstleter 
                 n WHERE n.title =:found"
            )
            //->setParameter("sertch",'%r%')
            ->setParameter('found',$found)
            ->getResult();
    }

}

 

1 odpowiedź

+1 głos
odpowiedź 10 czerwca 2019 przez Assasz Nałogowiec (30,460 p.)
Przez argument metody findMyOrdered(). Upewnij się tylko, czy korzystasz z właściwego repozytorium - odwołujesz się do repo powiązanego z encją Newstleter, a repozytorium nazywa się NewsRepository. Jakbyś wstrzyknął sobie te repo przez konstruktor (zamiast je pobierać z entity managera), to IDE samo by Ci powiedziało, jakie metody masz dostępne i jakich parametrów wymagają.

BTW, czemu piszesz takie zapytania w DQL? Zobacz sobie, czym jest Query Builder. No i masz masę błędów gramatycznych (seartch, sertch, newstleter).
komentarz 10 czerwca 2019 przez michal_php Stary wyjadacz (13,700 p.)
Dzięki za pomoc i cenne wskazówki
komentarz 10 czerwca 2019 przez michal_php Stary wyjadacz (13,700 p.)
A że DQL jest gorszy od Query Builder ? czy , że źle mam napisane ?
komentarz 10 czerwca 2019 przez Assasz Nałogowiec (30,460 p.)

Po prostu korzystajmy z rozwiązań, które zostały stworzone, aby ułatwić pracę. Czasem się korzysta z samego DQLa, ale to nie jest taka sytuacja.

Przy użyciu Query Buildera to by wyglądało jakoś tak:

return $this->createQueryBuilder('n')
    ->where('n.title LIKE :found')
    ->setParameter('found', '%'. $found . '%') // chyba coś takiego chcesz osiagnąć, nie wiem po co te sertch
    ->getQuery()
    ->getResult();

 

Podobne pytania

0 głosów
1 odpowiedź 287 wizyt
pytanie zadane 18 grudnia 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)
0 głosów
1 odpowiedź 108 wizyt
pytanie zadane 30 maja 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)
0 głosów
1 odpowiedź 280 wizyt
pytanie zadane 19 stycznia 2019 w PHP przez niezalogowany

92,979 zapytań

141,943 odpowiedzi

321,189 komentarzy

62,308 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.

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...