亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

結合 pagerfanta 的搜索結果

結合 pagerfanta 的搜索結果

PHP
小怪獸愛吃肉 2023-05-26 17:01:17
我有一個顯示項目列表的應用程序,在主頁上我添加了帶有兩個輸入的表單,第一個包含月份值,第二個包含年份值;我在控制器內部設置了動作,在該動作中有一個函數接受兩個參數“月、年”。/** * @Route("/bills",defaults={"page": "1"} , name="bills", methods={"GET"}) * @Route("/bills/page/{page<[1-9]\d*>}", name="bills_paginated", methods="GET") * @param BillRepository $billRepository * @param Request $request * @param int $page * @return Response */public function indexBills(BillRepository $billRepository,Request $request, int $page): Response{    $formBills = $this->createForm(BillsType::class);    $formBills->handleRequest($request);    $getArgs= $request->query->get('bills');    $Bills =$billRepository->unpaidBills($getArgs,$page);    return $this->render('homePage/bills.html.twig', [        'formBills'=>$formBills->createView(),        'Bills'=> $Bills ,    ]);}當我提交搜索表單時,結果按預期顯示,頁面分頁也在那里,但是當我單擊下一頁(例如頁面“2”)并且發生這種情況是因為它是空的有沒有辦法$getArgs保持更改頁面時使用相同的參數。謝謝 :)
查看完整描述

2 回答

?
哆啦的時光機

TA貢獻1779條經驗 獲得超6個贊

當您點擊“第 2 頁”時,您不會發送“年”和“月”數據。

解決方案 1 -bills從控制器注入表單數據

我認為,最簡單的方法是將 發送$request->query->get('bills')到樹枝,formData例如。在你的樹枝上添加'bills' : formData你的路線參數bills_paginated

如果你這樣做,symfony 將在你的 url 中添加你的表單數據,并且當你更改頁面時你不會丟失它們,所以當你這樣做時你就有了你的$getArgs= $request->query->get('bills');數據

解決方案 2 -bills從樹枝獲取表單數據

這是最簡單的解決方案,直接在樹枝中獲取賬單表單數據,如下所示{% set formData = app.request.get('bills') %}:在你的樹枝上添加'bills' : formData你的路線參數bills_paginated

最佳解決方案

IMO 最好和最干凈的解決方案是像這樣有一條包含年份和月份的路線"/bills/year/{year<[1-9]\d*>}/month/{month<[1-9]\d*>}/page/{page<[1-9]\d*>}"


查看完整回答
反對 回復 2023-05-26
?
隔江千里

TA貢獻1906條經驗 獲得超10個贊

我自己弄明白了,謝謝大家。所以如果有人遇到和我一樣的問題,我就是這樣解決的:


在 twig 顯示搜索結果的頁面內,在 pagerfanta 分頁功能的底部,我添加了一個routeParams.


{%

  set params = app.request.get('bills')

%}


{% if Bills.haveToPaginate %}

      <div class="card-footer pagination">

        {{

           pagerfanta(Bills, 'twitter_bootstrap4_translated',

             {

              routeName: 'bills_paginated',

              routeParams:{bills:params}

             })

        }}

      </div>



{% endif %}

現在每次我點擊一個特定的頁面時都params保持不變。

我希望代碼足夠清晰并有所幫助。


查看完整回答
反對 回復 2023-05-26
  • 2 回答
  • 0 關注
  • 157 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號