【发布时间】:2014-02-12 01:26:32
【问题描述】:
我正在尝试将自定义方法添加到我的存储库。我需要执行一个“不等于”查询。所以this 建议我实现了以下内容。但我得到了一个类似的错误
FatalErrorException: Error: Call to undefined method System\VmsBundle\Entity\EntryDetails::createQueryBuilder() in ..\src\System\VmsBundle\Entity\EntryDetails.php line 208
在我的实体中
<?php
namespace System\VmsBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
*@ORM\Entity(repositoryClass="System\VmsBundle\Entity\EntryRepository")
**/
/**
* EntryDetails
*/
class EntryDetails
{
.....
public function findByNot($field, $value)
{
$qb = $this->createQueryBuilder('a');
$qb->where($qb->expr()->not($qb->expr()->eq('a.'.$field, '?1')));
$qb->setParameter(1, $value);
return $qb->getQuery()->getResult();
}
}
在我的控制器中
$entities = $this->getDoctrine()->getRepository('SystemVmsBundle:EntryDetails')->findByNot('exitTime', 1);
在我的 orm.xml 文件中
<?xml version="1.0" encoding="utf-8"?>
<doctrine-mapping xmlns="http://doctrine-project.org/schemas/orm/doctrine-mapping" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://doctrine-project.org/schemas/orm/doctrine-mapping http://doctrine-project.org/schemas/orm/doctrine-mapping.xsd">
<entity name="System\VmsBundle\Entity\EntryDetails" table="entry_details" repository-class="System\VmsBundle\Entity\EntryDetails">
....
</entity>
</doctrine-mapping>
另外,当我尝试执行涉及 findAll() 方法的操作时,它会显示未定义的方法错误。如何解决这个问题?
【问题讨论】:
标签: symfony