我正在研究一个搜索模块。当我搜索某个项目时,该项目的 slug 作为查询字符串在 url 中传递,但我想将其转换为命名参数。为此,我urlToNamed()
在自定义组件 RedirectComponent.php 中创建了一个操作。我的代码是:
RedirectComponent.php
function urlToNamed() {
$urlArray = $this->controller->params->query;
if(!empty($urlArray)){
#remove unset values
$urlArray = array_filter($urlArray);
$this->controller->redirect($urlArray);
}
}
I am calling the urlToNamed() action from index action of BooksController.php i.e
public function index() {
$this->Redirect->urlToNamed();
//All other stuff to handle named parameter data and show result.
}
问题是我在搜索数据后的 URL 作为查询字符串http://localhost/esolutions/books/index?category=Books
,我必须将其转换为命名参数,例如http://localhost/esolutions/books/index/category:Books
.
另一个问题是
$this->controller->redirect($urlArray);
不管用。请给任何建议。提前致谢。