Cakephp 2 路由/SEO 友好 url

Cakephp 2 Routing / SEO friendly urls

对 cakephp 完全陌生,很难理解文档。

我正在研究的想法是出租 属性 搜索。我有控制器 rentalsController

在这里我有索引,我可以获取所有索引

我还有一个列出地区的边栏

现在,我想要发生的事情是让用户查看索引,然后转到边栏和 select 他们希望租用的区域。 URL 应该是 .com/rentals/region-name/

然后这将调用(这里可能是错误的)rentalsController > byRegion($region){ fetch.... )

我如何 a) 设置路由来管理它和 b) 收集通过的区域的功能。

对不起,如果这是基本的,但我已经搜索过,现在让我大吃一惊 - 正如你想象的那样 - 我们都曾经在这里学习过一种新的做事方式。

感谢您的所有反馈 - 马克

编辑

终于到了:

Router::connect(
    '/rentals-in-:region.html', 
    array( 'controller' => 'rentals', 'action' => 'byRegion' ),
    array( 'region' => '[a-zA-Z0-9\-]+', 'pass' => array('region'),
));

a) 如果您是蛋糕新手,我不建议您在路线文件中尝试。 如果您遵循蛋糕的惯例,您可以通过调用 /rentals/by_region/{region_name}.

来访问您的 RentalsController::byRegion ($region) 操作

不要忘记创建视图文件 app/View/Rentals/by_region.ctp

b) 假设您的租金 table 有一个区域字段:

public function byRegion ($region){
    $this->set ('rentals', $this->Rental->find ('all', array (
        'conditions' => array (
            'Rental.region LIKE' => $ region
        )
    )));

编辑:

比你要找的:

Router::connect(
   '/rentals/:region',
   array('action' => 'byRegion'),
   array('region' => '{your regex matching region}')
);

将此添加到您的路线文件中。您现在应该可以像您提到的那样调用 url 了。 应该可以,但我还没有测试过。