我需要使用 Doctrine 检索特定类型的所有项目,其中“日期”字段存储为日期时间。这意味着我也在使用 PHP DateTime 对象。
我需要做两件事:如果给定月份和年份,检索该月份和年份的所有记录;如果没有给出月份和年份,则检索该月的所有记录。
我一直在研究在 Doctrine Query Builder 中使用 BETWEEN 语句,但无法弄清楚如何从“现在”创建的 PHP DateTime 对象中干净地提取月份和年份,以便 DateTime 的时间部分不会影响查询. 我也看不到将 DateTime 中日期的日部分设置为 01 而不影响月份和年份的方法。
我认为这将是一项相当标准的任务,但找不到解决方案。任何帮助表示赞赏。
编辑:
找到了一种获取两者之间日期的方法,但 Doctrine 返回了一个空数组。使用以下代码
/**
* Returns feed for month and year
*/
public function getMonthYearFeed($month, $year)
{
// Create two times at the start of this month and next month
$startDate = \DateTime::createFromFormat('d-n-Y', "01-".$month."-".$year);
$startDate->setTime(0, 0 ,0);
$endDate = \DateTime::createFromFormat('d-n-Y', "01-".($month+1)."-".$year);
$endDate->setTime(0, 0, 0);
$notes = $this->em->getRepository('AppBundle:Note')->createQueryBuilder('n')->where('n BETWEEN :start AND :end')->setParameter('start', $startDate->format('Y-m-d H:i:s'))->setParameter('end', $endDate->format('Y-m-d …Run Code Online (Sandbox Code Playgroud) 我正在使用Symfony 3 Forms构建,并且需要在表单中检索依赖于当前用户的集合,以在下拉列表中呈现.
使用EntityType我可以检索所有实体的列表,但我希望能够运行自定义查询,该查询仅检索与当前用户对象有关系的查询.
我已经阅读了有关表单和EntityType的文档,它解释了自定义查询和提及作为参数传递集合.但我无法找到有关如何在任何地方实现这一目标的说明.
理想情况下,我想要传入我在Controller中策划的集合,传入User对象以在Form中运行查询,或以其他方式访问表单中的用户ID以运行查询.
有没有人找到类似的解决方案?
在我的Symfony2应用程序中,我设置了防火墙,以便/admin路由下的所有内容都需要通过https运行,但是在部署时我得到一个重定向循环.我已经在防火墙上阅读了Symfony2站点上的文档,并设置了登录表单.我还阅读了一些Stack Overflow文章并尝试了他们的解决方案,但到目前为止还没有.
以下是我的配置,有什么我想念的吗?
(据我所知,服务器正在运行Apache,我无法从托管服务提供商直接访问服务器配置)
access_control:
# require ROLE_ADMIN for /admin*
- { path: ^/login, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/login_check, roles: IS_AUTHENTICATED_ANONYMOUSLY, requires_channel: https }
- { path: ^/admin*, roles: ROLE_ADMIN, requires_channel: https}
Run Code Online (Sandbox Code Playgroud)