我是CakePHP的新手,我希望在我的應用中重寫我的網址。Cakephp網址路由
對於我想要導航的一些控制器。
`controller/action/id/slug`.
爲了這個,我寫的規則爲,
Router::connect(
'/products/:id/:slug', array('controller' => 'products', 'action' => 'view'), array('pass' => array('id'), 'id' => '[0-9]+')
);
我寫的環節..
echo $this->Html->link($record['Category']['name'], array('controller' => 'categories', 'action' => 'index', 'slug' => $record['Category']['slug']), array('escape' => false));
問題
是規則只適用於提到的控制器和行動即產品和vi ew resp。 ?
爲什麼我的網址(懸停時)顯示爲
controller/action/slug:slug_name
而不是controller/action/slug_name
?在同一控制器我想使用不同的URL重寫如
action/id/slug_name
或某處我發送/action
或某處我只使用蛞蝓action/slug_name
。唯一的規則是爲所有人寫的嗎?或者我必須爲每個控制器和操作定義單獨的規則。爲所有控制器創建通用規則?
請說明更多。我試圖閱讀文檔,但有點困惑。我的參數如何得到我提到的各種類型的請求。
寫現在我只用簡單的方法來獲取PARAMS作爲
controller/action/param1:param_val1/param2:param_val2,
echo $this->Html->link('Val', array('controller' => 'categories',
'action' => 'index', 'param1' => param_val1, 'param2' => param_val2,),
array('escape' => false));
等。但我希望有更漂亮的網址以及更好更快的移動。就像傳遞slu I一樣,我希望直接獲取findBySlug或某種方式使它更好。