Я создал новую услугу в своем проекте. Эта служба настроена в XML. Я хочу, чтобы пользователь EntityManager, чтобы восстановить данные som в службе, но я не могу «подключить» Doctrine к моей службе. В настоящее время у меня есть этот код:[Symfony 2] Использование Doctrine в службе
services.xml
<service id="SiteService.search" class="Site\ProductBundle\Search\SphinxSearch" factory-service="doctrine.orm.entity_manager" factory-method="getRepository">
<argument>Site\ProductBundle\Entity\Product</argument>
</service>
SphinxSearch.php
namespace Dada\FilmsBundle\Search;
use Symfony\Component\DependencyInjection\ContainerAware;
class DadaSearch extends ContainerAware{
//Some stuff
public function fullNoPrivateByTitle($query){
//Call $this->getResultsFromId($idlist);
}
private function getResultsFromId($idlist){
$doctrine = $this->container->get('doctrine')->getManager()->getRepository('SiteProductBundle:Product');
//Rest of the method
}
С помощью этого кода, я получил странную ошибку. Похоже, что Symfony полагает, что мой сервис - это своего рода новая доктрина:
Неопределенный метод 'fullNoPrivateByTitle'. Имя метода должно начинаться с помощью findBy или findOneBy! 500 Внутренняя ошибка сервера - BadMethodCallException
Может ли кто-нибудь помочь мне с настройкой моего сервиса? Большое спасибо.
Взгляните на это [сообщение] (http://stackoverflow.com/questions/9172586/the-method- name-must-start-with-or-findby-or-findoneby-undefined-method-sym), это может помочь вам – Maraboc
это сообщение помогло вам? – Maraboc