Php 按特定日期/任何年份查找所有行

Php 按特定日期/任何年份查找所有行,php,mysql,symfony,doctrine-orm,Php,Mysql,Symfony,Doctrine Orm,我正在用Symfony2构建一个应用程序,我需要为存储库创建一个自定义函数,该函数可以选择某个用户创建的、属于某个月/日但不属于任何年份的所有行 所以我想把某一天和某个用户输入回购协议,并从任何一年中获取在该天所做的任何条目 是否需要通过查询生成器执行此操作,还是需要将它们全部提取出来并在数组中使用PHP进行排序?这需要几个步骤: 通过添加到composer.json来添加: “beberlei/DoctrineExtensions”:“*” 修改…app/config/config.yml以

我正在用Symfony2构建一个应用程序,我需要为存储库创建一个自定义函数,该函数可以选择某个用户创建的、属于某个月/日但不属于任何年份的所有行

所以我想把某一天和某个用户输入回购协议,并从任何一年中获取在该天所做的任何条目


是否需要通过查询生成器执行此操作,还是需要将它们全部提取出来并在数组中使用PHP进行排序?

这需要几个步骤:

  • 通过添加到composer.json来添加:
    “beberlei/DoctrineExtensions”:“*”

  • 修改
    …app/config/config.yml
    以包括

然后,假设行出现在与用户有多通关系的实体中,您可以在存储库中构建查询,例如:

public function getSomeStuff($user, $day, $month)
{
    return $this->getEntityManager()
                ->createQuery(
                        "SELECT r FROM YourBundle:RowSource r "
                        . "JOIN YourBundle:User u "
                        . "WITH r.user = u "
                        . "WHERE Month(r.rowDate) = $month AND "
                        . "Day(r.rowDate) = $day AND "
                        . "r.user = $user "
            )->getResult();
}
这个怎么样:

public function fetchByDay($day)
{    
    $connection = $this->getEntityManager()->getConnection()->prepare('
        SELECT *
        FROM my_table
        WHERE DAYOFMONTH(date_column) = :day
    ');
    $connection->bindValue('day', (int) $day, \PDO::PARAM_INT);
    $connection->execute();

    return $connection->fetchAll(\PDO::FETCH_ASSOC);
}
下面是一个供进一步了解的示例

public function fetchByDay($day)
{    
    $connection = $this->getEntityManager()->getConnection()->prepare('
        SELECT *
        FROM my_table
        WHERE DAYOFMONTH(date_column) = :day
    ');
    $connection->bindValue('day', (int) $day, \PDO::PARAM_INT);
    $connection->execute();

    return $connection->fetchAll(\PDO::FETCH_ASSOC);
}