검색 모듈에서 작업 중입니다. 일부 항목을 검색 할 때 해당 항목의 슬러그는 쿼리 문자열로 url에 전달되지만 명명 된 매개 변수로 변환하려고합니다. 이를 위해 urlToNamed()
작업을 사용자 지정 구성 요소 RedirectComponent.php에서 만들었습니다. 내 코드는 다음과 같습니다cakephp 컨트롤러에서 리디렉션이 작동하지 않습니다.
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);
가 작동하지 않는 것입니다. 제안을하십시오. 미리 감사드립니다. 명명 된 매개 변수에 쿼리 문자열 매개 변수를 변경해야하는 경우
왜 쿼리 문자열 매개 변수를 명명 된 매개 변수로 변환해야합니까? 컨트롤러 동작에서도 쿼리 문자열 매개 변수를 사용할 수 있습니다. –
실제로 slug (명명 된 매개 변수 사용)를 사용하여 BooksController의 모든 제품을 표시하고 있습니다. 그 이유는 내가 검색 기능을 변경하고 싶지 않기 때문입니다. – yolla