【发布时间】:2019-01-21 14:22:03
【问题描述】:
我用表单生成器编写了一个 api 调用,它创建了两个日期字段。这个想法是选择两个日期并从该日期范围内的数据数据库中返回结果。
我找不到问题出在哪里,但我认为查询生成器中的语法不正确。
我没有收到任何错误,只是一个空数组。
这是来自服务的 api 调用
public function getTransaction()
{
$result = $this->getTransactionRepository()
->createQueryBuilder('a')
->select('a')
->where('a.date >= :from')
->andWhere('a.date <= :to')
->setParameter('from', $date->format('Y-m-d H:i:s'))
->setParameter('to', $date->format('Y-m-d H:i:s'))
->orderBy('p.id')
->getQuery()
->getArrayResult();
return $result;
}
我的控制器
$form = $this->createFormBuilder()
->add('dateFrom', DateType::class, array(
'widget' => 'single_text',
'attr' => array(
'dateFrom' => (new \DateTime())->format('Y-m-d'),
)))
->add('dateTo', DateType::class, array(
'widget' => 'single_text',
'attr' => array(
'dateTo' => (new \DateTime())->format('Y-m-d'),
)))
->add('submit', SubmitType::class, array('label' => 'Send', 'attr' => [
'class' => 'btn-link form-btn'
]))
->getForm();
$form->handleRequest($request);
if ($form->isSubmitted() && $form->isValid()) {
$transactions = $this->get('app')->getTransaction();
}
return $this->render('default/finance.html.twig',
array('form' => $form->createView(), 't' => $t)
);
}
和我的树枝视图
<tbody>
<tr>
<th>ID</th>
<th>User</th>
<th>Info</th>
<th>Name</th>
</tr>
{% for a in t %}
<tr>
<td>{{ a.id }}</td>
<td>{{ a.user }}</td>
<td>{{ a.info }}</td>
<td>{{ a.name }}</td>
</tr>
{% endfor %}
</tbody>`
【问题讨论】:
-
'dateTo' => (new \DateTime())->format('Y-m-d'),这些已设置,但是,$this->get('app')->getTransaction()不会收到您的To和From日期。你不应该做$this->get('app')->getTransaction($from, $to)和getTransaction做->setParameter('from', $from->format('Y-m-d H:i:s'))(和'to'相同)吗? -
另外,你问the same question twice了吗?
标签: php datetime doctrine-orm formbuilder