0

当使用分页以及长且可变的查询字符串时,我从第一页到第二页、第三页、第四页等时遇到问题。我怀疑它是一个路由问题。我正在使用用户通过一系列下拉菜单选择的自定义查询。结果 url 很长,其中包含所有 post 变量。

例如,工作的首页 url 看起来像(这里用字母表示的 post 变量):

project/web/s/search_results/t/u/v/w/x/y/z  

...以及单击第 2 页时无效的第 2 页 url:

project/web/s/search_results?page=2

第二页遵循路由规则。如前所述,第二页无法从寻呼机菜单中单击。但是如果我手动输入:

project/web/s/search_results/t/u/v/w/x/y/z?page=2  

- 它确实有效。重要的代码行如下:

路由规则:

search_results:
  url:      /s/search_results
  param:    { module: s, action: search_results }

url_for 分页助手:

<?php foreach ($pager->getLinks() as $page): ?>
      <?php if ($page == $pager->getPage()): ?>
        <?php echo $page ?>
      <?php else: ?>
        <a href="<?php echo url_for('@search_results', $object) ?>?page=<?php echo $page ?>"><?php echo $page ?></a>
      <?php endif; ?>
<?php endforeach; ?> 

和错误信息:

404 | Not Found | sfError404Exception
Unable to find the s object with the following parameters "array ( 'id' => 'search_results', 'sf_format' => 'html',)").

我应该为路由规则使用集合吗?

编辑: url_for 助手中引用的对象:

<?php  foreach ($pager->getResults() as $o => $object):  ?>  
4

1 回答 1

1

尝试:

 <a href="<?php echo url_for(sfContext::getInstance()->getRouting()->getCurrentInternalUri()) ?>?page=<?php echo $page ?>"><?php echo $page ?></a>
于 2012-09-10T19:33:14.230 回答