未定义的方法' queryActivos'。方法名称必须以findBy或findOneBy开头

时间:2016-01-04 14:23:31

标签: symfony doctrine-orm

我需要从entityRepository获取实体。 但是在我的formType中,当我调用我的函数queryActivos时,我得到下一个错误:

未定义的方法&queryActivos'。方法名称必须以findBy或findOneBy开头!

这是我在formtype中的字段:

->add('articulosDefectuosos','entity', array(
                'empty_value' => 'SELECCIONE ARTICULO DEFECTUOSO',
                'class'     => 'VentasAlmacenBundle:ArticuloDefectuoso',
                'multiple' => true,
                'expanded' => false,
                'query_builder' => function(EntityRepository $er){
                    return $er->queryActivos();
                },
                'attr'  =>  array(
                    'class' => "browser-default"
                )
            ))

这是实体:

/**
 * DevolucionProveedor
 *
 * @ORM\Table()
 * @ORM\Entity(repositoryClass="CeiferIT\VentasAlmacenBundle\Entity\DevolucionProveedorRepository")
 */
class DevolucionProveedor
{

这是我的存储库:

class DevolucionProveedorRepository extends EntityRepository
{
    public function queryActivos()
    {
        $em = $this->getEntityManager();
        $query = $em->createQueryBuilder('af')
            ->where('af.activo = :activo')
            ->setParameter('activo', true);
        return $query;
    }
}

1 个答案:

答案 0 :(得分:0)

class DevolucionProveedorRepository extends EntityRepository

{

public function findByqueryActivos($yourVariable)
{
    $em = $this->getEntityManager();
    $query = $em->createQueryBuilder('af')
        ->where('af.activo = :activo')
        ->setParameter('activo', true);
    return $query;
}

}