Cytat(Pilsener @ 28.11.2016, 09:00:30 )

- nie ma takiej potrzeby, każde zapytanie jest wyświetlone w profilerze.
if($user === 'anon.')
{
return true;
}
1. User to jest nazwa użytkownika, login, obiekt "user", status jakiś? Nazwa zmiennej powinna odzwierciedlać jej zawartość.
2. Metoda nazywa się "checkIfUserVote" a sprawdza czy user to string "anon.", za chwilę założysz temat "dlaczego użytkownik ma zaznaczone, że głosował jak nie oddał głosu"
$this->em->getRepository('AppBundle:Rate')
- nie powinno się tworzyć repozytoriów w taki sposób, lecz deklarować je jako serwisy oraz dostarczać jako zależność. Inaczej znów tworzymy sobie problem.
I po co używasz Doctrine skoro i tak nie używasz obiektów a do najprostszych zapytań piszesz DQL?
Przecież wystarczy:
$product = $user->getProduct();
//lub, gdy user ma wiele produktów
$product = $user->getProducts()->filter();
Ewentualnie ->matching lub ->findBy, do DQLa jeszcze dużo brakuje. A jeśli nie chcesz używać ORMa (bo nie ma takiego obowiązku przecież) to nie prościej używać tylko PDO?
Trzeba po prostu lepiej organizować kod bo inaczej zawsze będą problemy a w dodatku ciężko będzie cokolwiek poprawić.
Metoda IfUserVote dokładnie sprawdza czy użytkownik ma prawo głosu na dany produkt.
Sprawdzam czy user jest stringiem bo taką daną zwraca metoda z kontrolera, która pobiera zalogowanego użytkownika. Jeśli nie jest zalogowany to zwraca 'anon.'.
Zwracam prawdę bo i tak jeśli nie zalogowany użytkownik zagłosuje to wyświetli mu się strona do logowania, i problem załatwiony.
Z tymi zapytaniami do doctrine to chciałem stworzyć zapytanie, które pobierze dany głos (rate) oddany przez zalogowanego użytkownika i dotyczący danego produktu.
teraz się dowiedziałem że można to zrobić tak i dql nie jest potrzebny:
$product = $repository->findOneBy(array('name' => 'foo', 'price' => 19
.99
));
Myślałem że to jest ograniczone do jednego parametru.