我使用KnpPaginatorBundle作为页面。在这个页面中,我使用了一个手工创建的过滤器,它给出了
因此,如果我在表单中输入一些内容,它将处理请求并按照约定显示。问题是当我要求按“ID”分类时。
当我对名称或服务进行筛选,并要求按ID排序时,就会出现此问题
我有以下错误消息:
此表单不应包含额外的字段。
我该怎么做才能阻止这个错误?
我的控制器是:
/**
* Undocumented function
*
* @Route("/rh3", name="rh_index3")
*
* @param PaginatorInterface $paginator
* @param Request $request
* @param ObjectManager $manager
* @param UserRepository $repo
* @return void
*/
public function index3(PaginatorInterface $paginator, Request $request, UserRepository $repo)
{
$search = new UserSearch();
$form = $this->createForm(UserSearchType::class, $search);
$form->handleRequest($request);
$users = $repo->getUsersSearch($search);
$pagination = $paginator->paginate(
$users,
$request->query->getInt('page', 1),
7
);
return $this->render('rh/index3.html.twig', [
'pagination' => $pagination,
'form' => $form->createView(),
]);
}
我的Twig:
{% extends "base.html.twig" %}
{% block body %}
<div class="jumbotron">
<div class="container">
{{form_start(form)}}
<div class="form-row align-items-end">
<div class="col">
{{form_row(form.name)}}
</div>
<div class="col">
{{form_row(form.service)}}
</div>
<div class="col">
<div class="form-group">
<button type="submit" class="btn btn-primary">Rechercher</button>
</div>
</div>
</div>
{{form_end(form)}}
</div>
</div>
<table class="table table-hover align-items-center">
<thead>
<tr>
<th>{{ knp_pagination_sortable(pagination, 'Id', 'u.id') }}</th>
<th>Nom</th>
<th>Service</th>
<th>Action</th>
</tr>
</thead>
<tbody>
{% for user in pagination %}
<tr {% if loop.index is odd %} class="color" {% endif %}>
<td>{{user.id}}</td>
<td>{{user.fullName}}</td>
<td>{{user.groupe.nom}}</td>
<td>
<a href="#" class="btn btn-primary">Voir</a>
</td>
</tr>
{% endfor %}
</tbody>
</table>
<div class="navigation">
{{knp_pagination_render(pagination)}}
</div>
{% endblock %}
谢谢你的帮助!
发布于 2019-09-15 10:50:10
在UserSearchType中添加以下选项:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'allow_extra_fields' => true,
));
}
https://stackoverflow.com/questions/57943972
复制