我有一个过滤器酒吧,在那里你可以用名字搜索,并驱动车辆的品牌,但我想知道如何在这种格式的日期实际检查 - >dd/mm/yyyy
如右图什么都不知道发生在我搜索的日期,我收到一个空白页没有错误,但只有零结果。如何检查日期(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)
它显示假,当我不输入日期,并显示我的日期。所以我猜这个确实有效。 我仍然有这个问题,它不显示任何结果,只是一个空白页面,结果为零。
我不知道,如果你需要我的控制器或我的树枝,以获得更好的画面?我没有把它们放在这里,因为我认为这不是必要的,但随时可以问我。
什么是你有问题?请准确地解决这个问题。 – Jeet
嗨@Jeet目前我有一个过滤器栏,我可以通过名称等进行搜索(使用我的查询),但是当我输入日期格式为“**/**/****”时,它不会搜索这种格式。我想知道我该怎么做。对不起,模糊问题 –