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

Symfony błąd w QueryBuilderze

Mały hosting, OGROMNE możliwości
+1 głos
171 wizyt
pytanie zadane 8 sierpnia 2016 w PHP przez Else Stary wyjadacz (12,260 p.)

Witam! Piszę sobie aplikację w symfony, ale mam problem z napisaniem jak dla mnie nieco złożonego zapytania w repozytorium encji. Po uruchomieniu app_dev.php pojawia się błąd:

Error: Method Doctrine\Common\Collections\ArrayCollection::__toString() must not throw an exception, caught Symfony\Component\Debug\Exception\ContextErrorException: Catchable Fatal Error: Object of class Doctrine\ORM\EntityManager could not be converted to string

Mój kod tej klasy to:

<?php

namespace NewsBundle\Repository;


class NewsRepository extends \Doctrine\ORM\EntityRepository {

    public function getQueryBuilder(array $params = array()){

        $qb = $this->createQueryBuilder('n')
            ->select('n, q, p')
            ->leftJoin('n.followers', 'q')
            ->leftJoin('n.page', 'p');


        if(!empty($params['orderBy'])){
            $orderDir = !empty($params['orderDir']) ? $params['orderDir'] : NULL;
            $qb->orderBy($params['orderBy'], $orderDir);
        }
        if(!empty($params['userId'])){
            $qb -> Where( $qb->expr()->in('n.pageId', $qb->Select('u.pages')->from('users', 'u')->Where('n.followers = :useriId')))
                ->setParameter('userId',$params['userId'] );

        }

        return $qb;
    }
}

Używam Symfony 3.1.2. Niestety nie mam zbytniego doświadczenia z tym narzędziem. Napisałem jednak zapytanie sql które działa, ale knp_paginator którego używam nie wspiera SQLa podobno.

SELECT n.* FROM news AS n, user_pages as u WHERE n.page_id IN (SELECT u.page_id FROM user_pages WHERE u.user_id = 4) 

*zamiast 4 powinno się wstawić userId

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
3 odpowiedzi 2,023 wizyt
pytanie zadane 28 marca 2016 w PHP przez Else Stary wyjadacz (12,260 p.)
0 głosów
0 odpowiedzi 695 wizyt
pytanie zadane 15 listopada 2019 w PHP przez michal_php Stary wyjadacz (13,700 p.)
0 głosów
0 odpowiedzi 722 wizyt

93,717 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,263 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.

...