保留CakePHP中的父级slu ..

时间:2011-10-03 04:27:53

标签: cakephp routes cakephp-1.3 slug custom-routes

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

  

/类别/

     

/类别/书籍/

     

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

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

  

/类别/书籍/它和计算/ Web的发展/

我不知道如何在不创建太多路线的情况下这样做。这是我到目前为止的路线代码:

  

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

     

路由器::连接( '/类别/:蛞蝓',          数组('controller'=>'categories','action'=>'view'),          array('pass'=> array('slug'))   );

     

路由器::连接( '/类别/:父/:蛞蝓',          数组('controller'=>'categories','action'=>'view'),          array('pass'=> array('parent','slug'))   );

非常感谢任何帮助

亲切的问候

斯蒂芬

1 个答案:

答案 0 :(得分: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');
  }
}

/类别/书籍/计算/ Web的发展/ cakephp中/

结果:

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

/类别/

结果:

do something else

/类别/书籍

结果:

Array
(
    [0] => books
)