- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个函数可以获取今天所有的“网络旅游”。
我有一个像这样的自定义存储库:
public function toursTodayByNetwork($network){
$todayStart = \DateTime::createFromFormat( "Y-m-d H:i:s", date("Y-m-d 00:00:00") );
$todayEnd = \DateTime::createFromFormat( "Y-m-d H:i:s", date("Y-m-d 23:59:59") );
return $this->getEntityManager()
->createQuery(
'SELECT p FROM AppBundle:Tour p JOIN AppBundle:Schedule s WHERE p.id = s.tour AND p.network = :network AND s.start >= :todayStart AND s.start <= :todayEnd'
)
->setParameter('todayStart',$todayStart)
->setParameter('todayEnd',$todayEnd)
->setParameter('network',$network)
->getResult();
}
Tour
实体与 Object
实体具有 OneToMany
关系。
我现在想按 AppBundle:Object
中的 filiale
列对整个内容进行排序,正如您所看到的,它不在查询中,所以我不能简单地只需ORDER BY
。
我尝试过
/**
* @ORM\OneToMany(targetEntity="Object", mappedBy="tour")
* @ORM\OrderBy({"filiale" = "DESC"})
*/
protected $object;
但这并没有改变任何事情。
THIS看起来像是我必须做的事情,但我不明白将 EventListener 放在哪里?我还相信我可能只需要更改查询?
最佳答案
您必须加入您的对象表:
public function toursTodayByNetwork($network){
$todayStart = \DateTime::createFromFormat( "Y-m-d H:i:s", date("Y-m-d 00:00:00") );
$todayEnd = \DateTime::createFromFormat( "Y-m-d H:i:s", date("Y-m-d 23:59:59") );
return $this->getEntityManager()
->createQuery(
'SELECT p FROM AppBundle:Tour p JOIN p.schedule s JOIN p.object o WHERE p.network = :network AND s.start BETWEEN :todayStart AND :todayEnd ORDER BY o.filiale DESC'
)
->setParameter('todayStart',$todayStart)
->setParameter('todayEnd',$todayEnd)
->setParameter('network',$network)
->getResult();
}
对于日期条件,BETWEEN 是更好的做法,因为 >= AND <=。
关于php - 通过 PersistentCollection 对结果进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38182931/
我的数据库中有一对多关系。 编辑、删除和添加 元素过去工作得很好。但是,经过一些更改(我无法全部跟踪它们)后,它不再起作用。 现在,当我获取具有一对多关系的对象时,我会得到一个持久集合来表示我的多方集
当您已经知道父实体的 id 并且还知道该实体实际上存在于数据库中时,有没有办法获取实体的 Collection 属性,无需触发数据库查询? 获取此类集合的最简单方法当然是使用 EntityManage
这是一个益智游戏! :D 有没有办法强制 Hibernate 加载实体的集合,而不先加载整个实体? 让我更好地解释一下。我有一个以这种方式注释的角色实体: @Entity(name="Role") @
我有一个函数可以获取今天所有的“网络旅游”。 我有一个像这样的自定义存储库: public function toursTodayByNetwork($network){ $todayStar
我在 Zend Framework 2 项目中使用 Doctrine 2 ORM。 我试图坚持多对多的关系。我遵循了描述的文档 here (许多)。 尝试持久化数据时:$em->persist($fo
我在两个表到第三个表之间有关系,并带有额外的行,如下所示 question /** @Entity */ class Illness { /** @Id @GeneratedValue @Column
据我了解,当您通过存储库查询数据库时,您将获得 PersistentCollection,而当您使用您的实体时,您将获得 ArrayCollection。 所以请考虑我的用户实体有一对多的自引用关系。
我有一对关联。它们是多对多的,我使用显式创建的实体来加入它们,这样我就可以获得有关关系的元数据。虽然它们是相同的,但一个有效,另一个无效。更糟糕的是,上周,它们都起作用了,从那以后我就再也没有碰过它们
我正在尝试创建一个用于创建用户的新装置。 这是 fixture : class UserFixtures extends Fixture implements DependentFixtureInte
有谁知道如何模拟 Doctrine PersistentCollection? 当我尝试使用 PHPUnit 和 Mockery 直接模拟类时,我得到一个异常,内容如下: Mockery\Except
我正在获取具有多对多关系的数据,我想定义一个自定义方法。是否有可能(以及如何)使用类似的东西: $hotel = $entityManager->getRepository('Hotels')->fi
我正在使用 symfony2,但无法在 twig 中获取相关实体。 所以我有我的主要实体,我们称它为 Post,它具有 OneToMany 关系: /** * @ORM\OneToMany(targ
我用 Symfony2 制作了一个 Web 应用程序,其中一个 User 有一个数组关联 ManytoMany 与实体 Mission。用户可以通过表单上传实体 $product,表单传递的数据之一是
我正在使用 Symfony 4.1 和 SonataAdminBundle 3.36。 当我在 ManyToMany 关系字段调用标签上设置 ModelType::class 时出现此错误: No e
我有一个上传文件,我想从那里显示数据库中的所有类别,但我一直收到 EntityType 错误,我不知道为什么以前工作。 这是错误:Cannot assign Doctrine\ORM\Persiste
我正在使用 Symfony 3.1 和 Doctrine 2.5。 我一如既往地设置了一个多对多关系: manyToMany: placeServices: t
我已将几个模型类中的代码从字段访问器更改为属性访问器,并且还从 List 更改为 Set,因为顺序并不重要。以下是我的实体类。 @Entity @Table(name = "TPYP_GAME") p
谁能告诉我如何配置 Symfony2/Doctrine 以从实体中的指定列为 PersistentCollection 中的对象编制索引? 例如假设我们有两个表;类别和产品,许多产品属于一个类别。当我
我正在构建一个应用程序,用户可以在其中编辑一些数据,然后会看到一个屏幕,用户可以在其中确认(并评论)他的编辑。 在确认表单中,我显示了对实体所做的更改。这适用于“正常”字段。下面是一些用于检查单个字段
我在标签和文章实体之间有多对多关系,插入效果很好,但编辑表单(editAction 函数)的创建不起作用。所有代码都在那里: Article.php created = $created; $
我是一名优秀的程序员,十分优秀!