基于模型实例获取学说结果

Posted

技术标签:

【中文标题】基于模型实例获取学说结果【英文标题】:Fetching doctrine results based on model instance 【发布时间】:2015-01-21 23:30:19 【问题描述】:

我有一个 Symfony2 表单,它将提交的数据作为 Doctrine2 模型返回,其中填充了字段。然后我试图从数据库中获取与模型中设置的值匹配的所有实体。

通常我会在学说存储库中使用findBy 函数。但是,这需要一个包含搜索条件的关联数组。

是否有另一个类似于findBy 的函数可以传递填充模型作为搜索条件?

【问题讨论】:

不。很容易将自定义查询添加到存储库。 【参考方案1】:

你必须写你的own repository method 来处理这样的事情。您可以将对象传递给它,但您必须删除查询所需的详细信息。

类似:

 public function findBySomeOtherCriteria( AcmeBundle\Entity\Trythis $entity )
 
      $param1 = $entity->getParam1();
      $param2 = $entity->getParam2();

      $query = $this->getEntityManager()->createQuery( 
          'select a
          from AcmeBundle\Entity\Adifferentone a
          where a.param1 = :param1
          and a.param2 = :param2
          ' )->setParameters( array( 'param1' => $param1, 'param2' => $param2 );
     return $query->getResult();
 

【讨论】:

以上是关于基于模型实例获取学说结果的主要内容,如果未能解决你的问题,请参考以下文章

使用连接表返回结果的学说不起作用 Symfony2

使用学说 2 获取最后一个插入 id?

php orm 学说如何获取对象及其相关连接

学说 oneToOne 单向:获取映射对象

在视图模型中使用 LiveData 的结果从 firebase 获取数据

Symfony - 使用学说获取最后一个 ID