我们需要了解您的Junk实体:type只是一个字符串字段吗?
无论如何,您可以在关联的存储库类中编写自己的存储库方法:您的Junk类源将是这样的,我假设:
src/Acme/JunkieBundle/Entity/Junk.php
namespace Acme\JunkieBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
/**
* @ORM\Entity(repositoryClass="Acme\JunkieBundle\Repository\JunkRepository")
* @ORM\Table(name="junk")
*/
class Junkie{ ... }
确保您有一个带有存储库类名称的注释,然后编写该类 - 由$C100 = $em->getRepository()控制器中的方法获取的类。
src/Acme/JunkieBundle/Repository/JunkRepository.php
namespace Acme\JunkieBundle\Repository;
use Doctrine\ORM\EntityRepository;
class JunkRepository extends EntityRepository
{
public function findByTypes(array $types)
{
//we build our query here
$qb = $this -> createQueryBuilder();
$query = $qb -> where( $qb -> expr() -> in ('type', $types) )
-> getQuery();
return $query -> getResults();
}
}
现在你可以打电话
$em->getRepository('AcmeJunkieBundle:Junk')->findByTypes(array('C100', 'C200', 'C300'))
在您的控制器中。
请务必查看Doctrine文档。