2013-07-01 1 views
-1

Это мой запрос для получения случайного продукта:Доступ пользовательского запроса в Symfony2 Repository

public function getRelatedProducts() 
    { 
    $em = $this->getDoctrine()->getManager(); 
     $max = $em->createQuery('SELECT MAX(p.id) FROM GlassShopBundle:Product p')->getSingleScalarResult(); 
     return $em->createQuery('SELECT q FROM GreenMonkeyDevGlassShopBundle:Product p WHERE p.id >= :rand ORDER BY p.id ASC') 
      ->setParameter('rand',rand(0,$max)) 
      ->setMaxResults(1) 
      ->getSingleResult() 
      ->getResults(); 
    } 

я получаю Undefined method 'getRelatedByCategory'. The method name must start with either findBy or findOneBy! ошибки, которая мне это странно, так как другие запросы ВГА работали для меня, и я на самом деле не отклонилась. Есть предположения?

+1

метод с именем 'getRelatedProducts', вы называете' getRelatedByCategory', так что проблема? –

+1

Просто связанная вещь: она стонет у вас о «findBy» и «findOneBy» из-за того, что называется «волшебными искателями» в Доктрине. «Магические искатели» обрабатываются в функции PHP __call, где вы заканчиваете, когда вы вызываете недоступные или несуществующие методы. Это сообщение может использовать изменение, чтобы быть менее вводящим в заблуждение ... –

ответ

1

Возможно, это опечатка в имени вызываемой функции. Метод с именем getRelatedProducts, вы вызываете getRelatedByCategory.