分页Laravel 4不更新活动页码


Pagination Laravel 4 does not update active page number

我是laravel4的新手,我基本上使用nussoap库在laravel4中使用SOAP web服务。

我的问题是分页,在控制器我的代码是最后跟随

function AjaxProductList()
     {
         $isAjax = Request::ajax();
         if($isAjax)
         {
             //instantiate the NuSOAP class and define the web service URL:
             $client = new nusoap_client('http://stage.ws.greenbook.net/gbwswcf/servicegb.svc?wsdl', 'WSDL');
             //check if there were any instantiation errors, and if so stop execution with an error message:
              $error = $client->getError();
              if ($error) {
                die("client construction error: {$error}'n");
              }

                if(Input::get('term'))
                {
                  Session::put('term', Input::get('term'));
                  $term = Input::get('term');
                }
                else
                $term = Session::get('term');
                if(Input::get('pg_number')!='')
                {
                  Session::put('page_num', Input::get('pg_number'));
                  $page_num = Input::get('pg_number');
                }
                else
                $page_num = Session::get('page_num');

                if(Input::get('per_pg_result') !='')
                {
                  Session::put('result_per_page', Input::get('per_pg_result'));
                  $result_per_page = Input::get('per_pg_result');
                }
                else
                $result_per_page = Session::get('result_per_page');

                $param = 'SearchParam=|category@'.Session::get('type').'|searchterm@'.$term;

            //$value = Session::get('key');
                 $params = array( 'ClientID' => Config::get('globals.ClientID'),
                                    'strPwd' => Config::get('globals.password'),
                                    'Params' => $param ,
                                    'PageNum' =>$page_num,
                                    'NumOfResultsPerPage' =>$result_per_page
                            );

              $client->soap_defencoding = 'UTF-8';
              $answer = $client->call('GetResultsV2',$params);
              //check if there were any call errors, and if so stop execution with some error messages:
              $error = $client->getError();
                 if ($error) {
                    echo 'some error occured , please try again later';
                    die();
                  }

                $ResultNumbers  = Common::find_key_array('ResultNumbers',$answer);

                $data['SearchParams']   = Common::find_key_array('SearchParams',$answer);
                $data['products']       = Common::find_key_array('Product',$answer);


                 $data['total_result'] = $ResultNumbers['TotalNum'];

                $data['paginator'] = **Paginator::make($data['products'],$data['total_result'],$result_per_page)**;

        $return["prd_listing_bot"] =  View::make('frontend.search.ajax_product_listing',$data)->render();
                 echo json_encode($return);
            exit;
        }
         else
         {
            echo 'not allowed'; 
         } 
    }

这里我使用分页类并提供参数(返回的记录,总项,每页项)。

下面是我的视图代码:
$paginator->setBaseUrl('search');
echo $paginator->links();

现在链接创建成功了

我点击5后的URL结构是

 'http://mydomain/search?page=5'.

在'routes.php'中我有

Route::any('search', array('uses' => 'SearchController@QuickSearch'));

加载页面视图时,ajax调用函数AjaxProductList();

当我点击分页中的任何链接时,它成功捕获数据,但不更新活动链接。也就是说,如果我点击第5页,它将获取正确的数据,但活动链接仍将在页"1"。

如果我做错了什么,请告诉我。

Paginator::setCurrentPage($page_num);

Paginator::make($data['products'],$data['total_result'],$result_per_page);

无论如何,感谢每一个参与这里的人。

在Paginator::make()方法中,第一个参数是已经分页的项的数组。检查这个例子:

    $perPage = 15;
    $currentPage = Input::get('page', 1) - 1;
    $pagedData = array_slice($items, $currentPage * $perPage, $perPage);
    $matches = Paginator::make($pagedData, count($items), $perPage);

在这个例子中,我使用array_slice方法来获取当前页面的项。要在控制器中获取页面你可以使用Input::get('page', 1)所以如果没有选择页面,默认值为1