я пытаюсь понять, как сделать QueryBuilder в службе, так вот то, что я сделал:Пытались вызвать неопределенный метод под названием «createQueryBuilder»
Создать свой сервис:
namespace OC\PlatformBundle\PurgerAdvert;
use Doctrine\ORM\EntityManager;
class PurgerAdvert
{
private $em;
public function __construct(EntityManager $em) {
$this->entityManager = $em;
}
public function purge($days)
{
$queryBuilder = $this->createQueryBuilder();
$queryBuilder->select('a')->from('OCPlatformBundle:Advert', 'a');
// get the Query from the QueryBuilder here ...
$query = $qb->getQuery();
return $result = $query->getResult();
}
}
Объявить его в services.yml:
oc_platform.purger.advert:
class: OC\PlatformBundle\PurgerAdvert\PurgerAdvert
arguments: ['@doctrine.orm.entity_manager']
я удалить запрос, потому что я имею ошибку до того, что: "Attempted to call an undefined method named "createQueryBuilder" of class "OC\PlatformBundle\PurgerAdvert\PurgerAdvert""
Я предполагаю, что я не называю должным образом EntityManager, но я не вижу мои мили ставка ...
Спасибо за вашу помощь :)
Просто замените '$ this-> createQueryBuilder()' this '$ em-> createQueryBuilder()' – ciurciurek
Лучше, если вы измените 'private $ entityManager' вместо' private $ em', чтобы использовать '$ this-> entityManager -> createQueryBuilder() '. –
Я пробовал решение ciurciurek, но ошибка «Примечание: неопределенная переменная: em»/Решение gp_sflover работает! спасибо :) –