Hyperlink 使用get参数创建链接
phalcon(volt)中是否有一个帮助函数来创建到带有GET参数的路由的链接?我有分页链接,我想在上面添加?cat=category和?year=year,这取决于它们是否被设置Hyperlink 使用get参数创建链接,hyperlink,query-string,phalcon,volt,Hyperlink,Query String,Phalcon,Volt,phalcon(volt)中是否有一个帮助函数来创建到带有GET参数的路由的链接?我有分页链接,我想在上面添加?cat=category和?year=year,这取决于它们是否被设置 <a href="{{ url.getBaseUri() }}tags/{{ tagname.tag }}">First</a> <a href="{{ url.getBaseUri() }}tags/{{ tagname.tag }}?page=<?= $page->be
<a href="{{ url.getBaseUri() }}tags/{{ tagname.tag }}">First</a>
<a href="{{ url.getBaseUri() }}tags/{{ tagname.tag }}?page=<?= $page->before; ?>">Previous</a>
<a href="{{ url.getBaseUri() }}tags/{{ tagname.tag }}?page=<?= $page->next; ?>">Next</a>
<a href="{{ url.getBaseUri() }}tags/{{ tagname.tag }}?page=<?= $page->last; ?>">Last</a>
将成为:
http://site.tld/tags/xyz?cat=a&year=b&page=2
或者,如果cat未设置或为空:
http://site.tld/tags/xyz?year=b&page=2
编辑
这种方式似乎有效:
<a href="{{ pagingurl ~ page.first }}">First</a>
<a href="{{ pagingurl ~ page.before }}">Previous</a>
<a href="{{ pagingurl ~ page.next }}">Next</a>
<a href="{{ pagingurl ~ page.last }}">Last</a>
其余部分在控制器中进行。在控制器中进行此操作比使用volt更容易。 首先,使用以下内容为分页链接生成基本URL: 现在,您可以使用类似于
$this->request->getPost('cat')的东西获得'cat'和'year'
检查是否已设置,并将其作为GET参数附加到$pagingUrl
。在$pagingUrl
的末尾保留一个“&page=”,以便以后轻松地追加页码
将$page
和$pagingUrl
设置为视图的变量,以便从volt轻松访问:
$this->view->setVar('page', $page);
$this->view->setVar('pagingUrl', $pagingUrl);
最后,在视图中,您可以使用以下内容:
{{ link_to(pagingUrl ~ '1', 'First') }}
{{ link_to(pagingUrl ~ page.before, 'Previous') }}
{{ link_to(pagingUrl ~ page.next, 'Next') }}
{{ link_to(pagingUrl ~ page.last, 'Last') }}
编辑 上面的解决方案似乎有些老套,因为Phalcon设计者的目标是更多地使用而不是显式的GET参数。如果以这种方式传递参数,则
TagController
可能会有一个支持分页的操作,如下所示:
class TagController
{
...
public function ListAction($page = 1, $category = 'default-cat', $year = 1997)
{
...
通过这种方式,您可以轻松创建如下链接:
标签/列表
tags/list/2/stuff
tags/list/9/stuff/2014
{{ link_to(pagingUrl ~ '1', 'First') }}
{{ link_to(pagingUrl ~ page.before, 'Previous') }}
{{ link_to(pagingUrl ~ page.next, 'Next') }}
{{ link_to(pagingUrl ~ page.last, 'Last') }}
class TagController
{
...
public function ListAction($page = 1, $category = 'default-cat', $year = 1997)
{
...