【问题标题】:Paginate results whit KipPaginatorBundle fail对 KipPaginatorBundle 失败的结果进行分页
【发布时间】:2016-06-17 13:28:22
【问题描述】:

我正在创建这样的表单搜索:

当我运行搜索时,它会显示包含 10 个元素的第一页,但是当我单击第 2 页时,它会显示我的数据库的所有元素,而不考虑我的条件搜索。我不明白

class FrontController extends Controller
{
       /**
        * @Route("/", name="front_homepage")
        */
        public function indexAction(){

             $form = $this->createForm(SearchType::class);

             return $this->render('FrontBundle::layout.html.twig', array(
                 'form' => $form->createView(),
             ));
        }

}


class SearchController extends Controller
{
    /**
     * @param Request $request
     * @Route("/search/form", name="front_search_form")
     */
    public function searchOffreAction(Request $request)
    {
        $em = $this->getDoctrine()->getManager();

        $form = $this->createForm(SearchType::class);

        $form->handleRequest($request);

        if($form->isSubmitted()) {

           $entity = $em->getRepository('CoreBundle:Foo')->findByCritere($form->getData());

            /** @var Paginator $paginator */
            $paginator  = $this->get('knp_paginator');
            $result = $paginator->paginate(
                $entity,
                $request->query->getInt('page', 1),
                10
            );

            return $this->render('FrontBundle:Search:offre.html.twig', ['offres' => $result]);

        }

       return $this->createNotFoundException();
    }

}

谢谢大家,

【问题讨论】:

    标签: php symfony knppaginatorbundle


    【解决方案1】:

    我认为问题在于您的 $entity 需要是查询而不是结果。

    试试这个:

    $em = $this->getDoctrine()->getManager();
    $dql   = "SELECT f FROM CoreBundle:Foo f";
    $query = $em->createQuery($dql);
    
    /** @var Paginator $paginator */
    $paginator  = $this->get('knp_paginator');
    $result = $paginator->paginate(
         $query,
         $request->query->getInt('page', 1),
         10
    );
    

    不确定它是否会起作用,但请尝试一下。

    【讨论】:

    • 谢谢你的工作,你救了我的命......享受
    • 很高兴为您提供帮助!如果您需要进一步的帮助,请发布更多问题。
    猜你喜欢
    • 2018-04-03
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2013-05-13
    • 2019-06-24
    • 1970-01-01
    相关资源
    最近更新 更多