很多时候,我必须在$someObject是预填充对象findBy(array('criteria'=> $someObject)
这样做。我的问题是:是否有一个内置函数,给定$someObject id和他的实体类型从数据库中获取他,然后从上面执行findBy???像这样:
public function findByDiscriminator($slave, $idSlave, $discriminator, $discriminatorCriteria)
{
$slaveManager = $this->container->get('doctrine')->getRepository("AppBundle:$slave");
$slaveEntity = $slaveManager->find($idSlave);
return $this->findAllByCriteria(array($discriminatorCriteria => $slaveEntity), 0, 0, $discriminator);
}
public function findAllByCriteria($criteria, $limit = 0, $offset = 0, $repository)
{
$total = $limit * $offset;
$start = $limit * ($offset - 1);
$spamManager = $this->container->get('doctrine')->getRepository("AppBundle:$repository");
$spam = $spamManager->findBy($criteria, array(), $total != 0 ? $total : null, $start != 0 ? $start : null);
return $spam;
}
如果,比方说,我需要获取供应商ID为456的所有杂货,我会像这样查询 DAO->findByDiscriminator('SupplierEntity', 456, 'GroceryEntity', 'supplier')
假设杂货店实体中有一个名为供应商的字段。
基本上是一个findBy((,它在查询之前从数据库中获取条件
据我所知,教义提供的 findBy 方法没有这样的内置包装器。您可以在某个基类中定义它们,然后通过您的 doctrine 数据访问对象继承它,这最终将为您正在寻找的代码带来可重用性。