我有一个问题从第一页到第二页,第三页,第四页等...当使用分页以及长而可变的查询字符串时。我怀疑它是一个路由问题。我正在使用用户通过一系列下拉菜单选择的自定义查询。生成的url非常长,包含所有post变量。
例如,工作的第一页网址看起来像(这里的帖子变量用字母表示):
project/web/s/search_results/t/u/v/w/x/y/z
...和点击第2页时的非工作第二页网址:
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): ?>
答案 0 :(得分:1)
尝试:
<a href="<?php echo url_for(sfContext::getInstance()->getRouting()->getCurrentInternalUri()) ?>?page=<?php echo $page ?>"><?php echo $page ?></a>