Php 通过参数自取查找原则

Php 通过参数自取查找原则,php,symfony,doctrine-orm,Php,Symfony,Doctrine Orm,通常我必须这样做findBy(array('criteria'=>$someObject)其中$someObject是一个预填充的对象。我的问题是:是否有一个内置函数,给定$someObject id和他的实体类型,从数据库中提取他,然后从上面执行findBy???类似这样的: public function findByDiscriminator($slave, $idSlave, $discriminator, $discriminatorCriteria) { $slaveMana

通常我必须这样做
findBy(array('criteria'=>$someObject)
其中$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的al杂货,我会这样查询
DAO->findByDiscriminator('SupplierEntity',456,'GroceryEntity','supplier')
假设GroceryEntity中有一个名为supplier的字段


基本上是一个findBy()据我所知,doctrine提供的findBy方法没有内置包装器。您可以在一些基类中定义它们,然后通过doctrine数据访问对象继承它们,这将最终为您正在寻找的代码带来可重用性。

是的,我只是想确定一下。非常感谢。向上投票(如果我的声誉允许的话)