2

我正在尽可能高效地在 CakePHP 中尝试使用 SEO 友好的 URL,我已经设法使用当前格式,每个示例都使用函数 view($slug),除了第一个使用函数 index() 的例子。

/类别/

/类别/书籍/

/类别/书籍/它和计算/

但是,如果 IT 和计算有一个子类别“Web 开发”呢?我希望 URL 变为:

/categories/books/it-and-computing/web-development/

我不确定如何在不创建太多路线的情况下做到这一点。到目前为止,这是我的路线代码:

Router::connect('/categories/', array('controller' => 'categories', 'action' => 'index'));

Router::connect('/categories/:slug', array('controller' => 'categories', 'action' => 'view'), array('pass' => array('slug')) );

Router::connect('/categories/:parent/:slug', array('controller' => 'categories', 'action' => 'view'), array('pass' => array('parent', '蛞蝓')));

任何帮助将不胜感激

亲切的问候

斯蒂芬

4

1 回答 1

0
// in routes.php
Router::connect('/categories/:row:lastslash',array('controller' => 'settings', 'action' => 'show',),array(
      'pass'=>array('row'),
      'row'=>'.*?',
      'lastslash'=>'\/?'
));

//in controller
function show($row = ""){
  if($row){
    $categories = split('/',$row);

    ?><pre><? print_r($categories);?></pre><?die();
  }else{
    die('do something else');
  }
}

/类别/书籍/计算/网络开发/cakephp/

结果:

Array
(
    [0] => books
    [1] => computing
    [2] => web-development
    [3] => cakephp
)

/类别/

结果:

do something else

/类别/书籍

结果:

Array
(
    [0] => books
)
于 2011-10-03T10:01:29.357 回答