OK、間違ったアプローチを取っているかどうかはわかりませんが、ここで立ち往生しています...
私たちはウェブサイトを開発し、IDと特別な変数を期待する多くのコントローラーがあり、リンクはすでに期待されるものを渡すコントローラーにリダイレクトされています。
新しい要件は、friendlyUrlsを使用することであり、そのアイデアは、次の代わりに次のことを行うことです。
http://domain.com/search/advanced/term:head/city:/set:show-all/sort:basic-relevance
今それは読む
またはオプションを渡します。
http://domain.com/search/in-edinburgh-scotland/by-rating/head
私の考えは、Routes.phpの最初に、次のような単純なものを用意することでした。
$friendlyUrl = $_SERVER['REQUEST_URI'];
$friendlyUrl = split('/', $friendlyUrl);
foreach ($friendlyUrl as $key => $params) {
if(empty($params)){
unset($friendlyUrl[$key]);
}
if($params == 'search'){
Router::connect('/search/*', array('plugin'=>'Search','controller' => 'Search', 'action' => 'advancedSearch', 'term'=>'head));
}elseif ($params == 'employers') {
# code...
}elseif ($params == 'employer-reviews') {
# code...
}elseif ($params == 'jobs') {
# code...
}
}
それはうまくいきませんでした、それから私は私のAppControllerに似たようなものを追加しようとしましたが何もしませんでした。
全体として、しなければならないことは次のとおりです。
- URLは次の形式になります:/ search / {term}
- 実際には次の場所にリダイレクトされます:/ search / Advanced / {term} / city:{optional} / set:show-all / sort:basic-relevance
- 読み続けるためのURLバー:/ search / {term}
誰かアイデアがありますか?!ありがとうございました