Forms symfony2过滤器与Lexik表单过滤器捆绑:

Forms symfony2过滤器与Lexik表单过滤器捆绑:,forms,symfony,filter,Forms,Symfony,Filter,我有实体诊所 表格类型: 控制器设置 public function indexAction(Request $request) { $em = $this->getDoctrine()->getManager(); $entities = $em->getRepository('AgriHealthAhpBundle:Clinic')->findAll(); $filter = $this->renderFilter($request)

我有实体诊所

表格类型:

控制器设置

public function indexAction(Request $request)
{
    $em = $this->getDoctrine()->getManager();

    $entities = $em->getRepository('AgriHealthAhpBundle:Clinic')->findAll();
    $filter = $this->renderFilter($request);

    return $this->render('AgriHealthAhpBundle:Clinic:index.html.twig', array(
        'entities' => $entities,
        'form' => $filter
    ));
}

private function renderFilter(Request $request)
{
    $form = $this->get('form.factory')->create(new ClinicFilterType());

    if ($request->query->has($form->getName())) {
        // manually bind values from the request
        $form->submit($this->get('request')->query->get($form->getName()));

        // initialize a query builder
        $filterBuilder = $this->get('doctrine.orm.entity_manager')
            ->getRepository('AgriHealthAhpBundle:Clinic')
            ->createQueryBuilder('e');

        // build the query from the given form object
        $this->get('lexik_form_filter.query_builder_updater')->addFilterConditions($form, $filterBuilder);

        // now look at the DQL =)
        var_dump($filterBuilder->getDql());
    }

    return $this->render('AgriHealthAhpBundle:Clinic:filter.html.twig', array(
        'form' => $form->createView(),
    ));

}
我要走了

Catchable Fatal Error: Object of class Symfony\Component\Form\FormView could not be converted to string

我是否忽略了表单类中的某些内容?

如何在
filter.html.twig
中呈现表单?也许你的模板有输入错误。基本lexik过滤器表单渲染可能如下所示:

<form method="get" action=".">
    {{ form_rest(form) }}
    <input type="submit" name="submit-filter" value="filter" />
</form>

{{form_rest(form)}
<form method="get" action=".">
    {{ form_rest(form) }}
    <input type="submit" name="submit-filter" value="filter" />
</form>