【发布时间】:2017-12-22 00:49:24
【问题描述】:
我有一个过滤栏,您可以在其中搜索名称和车辆品牌,但我想知道如何实际检查这种格式的日期 -> dd/mm/yyyy 正确知道当我搜索日期时没有任何反应,我收到没有错误的空白页,但结果为零。
我找到了一个使用这个$fullDate = DateTime::createFromFormat('d/m/Y',$filter); 的解决方案,但我很难将它添加到我的代码中。
所以我将分享我的代码和我研究的内容
您可以在其中查看所有带有过滤器参数的查询(用于我的搜索)
public function getQueryByTypeAndPro($type, User $user, $archive, $filter)
{
$fullDate = \DateTime::createFromFormat('d/m/Y', $filter);
$qb = $this->createQueryBuilder("opn");
$or = new Orx();
if($fullDate !== false) {
$textFilters[] = $qb->expr()->orx($qb->expr()->like('opn.dateCreation', ':filter'));
} else {
$textFilters[] = $qb->expr()->orx($qb->expr()->like('opn.id', ':filter'));
$textFilters[] = $qb->expr()->orx($qb->expr()->like('opn.vehiculeMarque', ':filter'));
$textFilters[] = $qb->expr()->orx($qb->expr()->like('opn.clientNom', ':filter'));
$textFilters[] = $qb->expr()->orx($qb->expr()->like('opn.clientPrenom', ':filter'));
}
$or->addMultiple($textFilters);
$qb->andWhere($or);
$query = $qb
->andWhere("opn.type = :type")
->andWhere("opn.resellerId = :reseller")
->andWhere("opn.archive = :archive")
->setParameters([
"type" => $type,
"reseller" => $user->getId(),
'archive' => $archive,
'filter' => '%' . $filter . '%'
])
->orderBy("opn.dateCreation", "DESC")
->getQuery()
;
return $query;
}
当我以这种格式 dd/mm/yyyy 进行日期搜索时,它在我的查询分析器中显示的内容
SELECT
count(r0_.id) AS sclr0
FROM
reseller_operation r0_
WHERE
r0_.dateCreation LIKE ?
AND r0_.type = ?
AND r0_.reseller_id = ?
AND r0_.archive = ?
所以现在这段代码的工作方式是,当我进行转储dump($fullDate) 时,它在我不输入日期时显示为 false,而在我输入时显示日期。所以我想目前确实有效。
我仍然遇到的问题是它没有显示任何结果,只是一个零结果的空白页。
我不知道您是否需要我的控制器或我的树枝才能获得更好的照片?我没有把它们放在这里,因为我认为这没有必要,但请随时问我。
【问题讨论】:
-
您有什么问题?请准确描述问题。
-
嗨@Jeet 目前我有一个过滤栏,我可以在其中按名称等搜索(使用我的查询)但是当我输入这样的日期格式
**/**/****它不会以这种格式搜索.我想知道我该怎么做。很抱歉出现模糊问题