2
我有一个存储库这样的功能:查询生成器或调用本身有什么问题?
public function buscarConstanciaProducto($solicitudUsuario, $productoSolicitud)
{
$builder = $this->getEntityManager()->createQueryBuilder();
$builder->select(array('su', 'p', 'ps', 'c'))
->from('AppBundle:SolicitudUsuario', 'su')
->leftJoin('su.producto_solicitud', 'ps')
->leftJoin('ps.producto', 'p')
->leftJoin('su.constancias', 'c')
->where('su.id = ?', $solicitudUsuario)
->andWhere('ps.id = ?', $productoSolicitud);
return $builder->getResult();
}
我想从我的控制器调用它如下:
$result = $em->getRepository("AppBundle:Constancia")->buscarConstanciaProducto(
(int) $request->query->get('id'), // this gets 18
$productoSolicitud->getId() // this gets 25
);
但我得到这个错误:
Warning: get_class() expects parameter 1 to be object, integer given
那里有什么问题?
这是一个完整的堆栈跟踪:
[1] Symfony\Component\Debug\Exception\ContextErrorException: Warning: get_class() expects parameter 1 to be object, integer given
at n/a
in /var/www/html/project.dev/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Expr/Base.php line 92
at Symfony\Component\Debug\ErrorHandler->handleError('2', 'get_class() expects parameter 1 to be object, integer given', '/var/www/html/project.dev/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Expr/Base.php', '92', array('arg' => '18', 'this' => object(Andx)))
in line
at get_class('18')
in /var/www/html/project.dev/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Expr/Base.php line 92
at Doctrine\ORM\Query\Expr\Base->add('18')
in /var/www/html/project.dev/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Expr/Base.php line 74
at Doctrine\ORM\Query\Expr\Base->addMultiple(array('su.id = ?', '18'))
in /var/www/html/project.dev/vendor/doctrine/orm/lib/Doctrine/ORM/Query/Expr/Base.php line 63
at Doctrine\ORM\Query\Expr\Base->__construct(array('su.id = ?', '18'))
in /var/www/html/project.dev/vendor/doctrine/orm/lib/Doctrine/ORM/QueryBuilder.php line 871
at Doctrine\ORM\QueryBuilder->where('su.id = ?', '18')
in /var/www/html/project.dev/src/Sencamer/AppBundle/Entity/Repository/ConstanciaRepository.php line 23
at AppBundle\Entity\Repository\ConstanciaRepository->buscarConstanciaProducto('18', '25')
in /var/www/html/project.dev/src/Sencamer/AppBundle/Controller/Comunes/ListadoController.php line 96
at AppBundle\Controller\Comunes\ListadoController->getConstanciaProductosSolicitudAction(object(Request))
in line
at ReflectionMethod->invokeArgs(object(ListadoController), array(object(Request)))
in /var/www/html/project.dev/vendor/jms/cg/src/CG/Proxy/MethodInvocation.php line 63
at CG\Proxy\MethodInvocation->proceed()
in /var/www/html/project.dev/vendor/jms/security-extra-bundle/JMS/SecurityExtraBundle/Security/Authorization/Interception/MethodSecurityInterceptor.php line 120
at JMS\SecurityExtraBundle\Security\Authorization\Interception\MethodSecurityInterceptor->intercept(object(MethodInvocation))
in /var/www/html/project.dev/vendor/jms/cg/src/CG/Proxy/MethodInvocation.php line 58
at CG\Proxy\MethodInvocation->proceed()
in /var/www/html/project.dev/app/cache/dev/jms_diextra/proxies/Sencamer-AppBundle-Controller-Comunes-ListadoController.php line 30
at EnhancedProxy72c8de70_7ca524686d92d76741252b9b0630ee44b00c6576\__CG__\AppBundle\Controller\Comunes\ListadoController->getConstanciaProductosSolicitudAction(object(Request))
in line
at call_user_func_array(array(object(ListadoController), 'getConstanciaProductosSolicitudAction'), array(object(Request)))
in /var/www/html/project.dev/app/bootstrap.php.cache line 3022
at Symfony\Component\HttpKernel\HttpKernel->handleRaw(object(Request), '1')
in /var/www/html/project.dev/app/bootstrap.php.cache line 2984
at Symfony\Component\HttpKernel\HttpKernel->handle(object(Request), '1', true)
in /var/www/html/project.dev/app/bootstrap.php.cache line 3133
at Symfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel->handle(object(Request), '1', true)
in /var/www/html/project.dev/app/bootstrap.php.cache line 2377
at Symfony\Component\HttpKernel\Kernel->handle(object(Request))
in /var/www/html/project.dev/web/app_dev.php line 20