我的twig中有一个小的html表单可以帮助我过滤结果,我希望当用户添加一个值作为示例foo
并提交时,它会保留他/她刚刚输入的值页面刷新。
我一直在寻找并且无法找到可以使其发挥作用的东西,或者我这样做非常糟糕。 我现在唯一的解决方法是在JS中完成。
我会告诉你我的代码
我的表格在我的树枝
<form action="{{ path('st_backoffice_commerce_offre') }}" method="get">
<input name="filter" type="text" value="" id=userInput">
<button type="submit" class="btn btn-default">Filtrer</button>
</form>
我设置filter
变量的控制器
private function resultsAction(Request $request, User $user, $type, $archive)
{
$em = $this->getDoctrine()->getManager();
$paginator = $this->get('knp_paginator');
$filter = $request->query->get('filter');
$qb = $em->getRepository("STUserBundle:Operation")->getQueryByTypeAndPro($type, $user, $archive, $filter);
$results = $paginator->paginate(
$qb,
$request->query->get('page',1),
$request->query->get('limit',50),
[
'defaultSortFieldName' => 'opn.dateCreation',
'defaultSortDirection' => 'desc'
]
);
return array("results" => $results, "archive" => $archive);
}
public function offreAction(Request $request, User $user, $archive = false)
{
return $this->resultsAction($request, $user, Operation::OFFRE_COMMERCIALE, $archive);
}
以及我发现尝试使其工作的JS代码
var $userInput;
$("filter").on("change", function(){
$userInput = $("filter").val();
});
我尝试将PHP代码整理成twig但是......这不是一个好主意,因为我无法使其工作。 所以我遇到了一个相当简单的问题,但是在树枝刷新之后我无法真正实现我的投入。
答案 0 :(得分:3)
您可以根据文档访问请求对象:https://symfony.com/doc/current/reference/twig_reference.html#app
所以也许你可以试试这个:
<input name="filter" type="text" value="{{ app.request.query.get('filter') }}" id=userInput">