2015-11-19 1 views
1

Я follwoing строки запроса, порожденной «поисковой формой»Phalcon - Как я могу получить URL-адрес строку запроса с динамическими параметрами в Volt для создания PAGINATION

results?pagefrom=18&pageto=30&country=2&state=&city=0&keyword=&status=all&cmd=basic_search&Submit=Start+Searching 

мне нужно знать, как я могу получить это в поколение пагинация в вольтах, как показано ниже

<li class="previous"><a href="/search/results?page={{ page.before }} & NEEDS TO ADD ABOVE QUERY AS IT IS HERE TO WORK ">Previous</a></li> 

ответ

2

Я использую что-то вроде этого:

<li class="previous"><a href="/search/results?<?php echo http_build_query(array_merge($this->request->getQuery(), ['page' => $page->before])); ?>">Previous</a></li> 

Для удобства создания Марко:

{%- macro pagination_url(url, page) %} 
    {{ url }}?<?php echo http_build_query(array_merge($this->request->getQuery(), ['page' => $page->before])); ?> 
{% endmacro %} 

<li class="previous"><a href="{{ pagination_url('/search/results', page.before) }}">Previous</a></li> 

Или вы можете добавить эту функцию в вольтовом компилятор:

$compiler = $volt->getCompiler(); 

$compiler->addFunction('pagination_url', function ($resolvedArgs, $exprArgs) use ($compiler) { 

    $url = $compiler->expression($exprArgs[0]['expr']); 
    $page = $compiler->expression($exprArgs[1]['expr']); 

    return $url . '.\'?\'.http_build_query(array_merge($this->request->getQuery(), [\'page\' => ' . $page . ']))'; 
});