Cakephp路由生成URL参数

Cakephp路由生成URL参数,cakephp,cakephp-2.0,Cakephp,Cakephp 2.0,CakePHP2.0的简单问题 我想设置一个路由规则,以便: www.abc.com/z/abc123 将解析为包含URL参数的的完整URL www.abc.com/bookings/bookingref/?ref=abc123 其中bookings是控制器,bookingref是操作 有人能教我在routes.php中需要写些什么吗 Kevin在routes.php中: Router::connect('/bookingref/', array('controller' => 'bo

CakePHP2.0的简单问题

我想设置一个路由规则,以便:

www.abc.com/z/abc123
将解析为包含URL参数的的完整URL

www.abc.com/bookings/bookingref/?ref=abc123
其中bookings是控制器,bookingref是操作

有人能教我在routes.php中需要写些什么吗

Kevin

在routes.php中:

Router::connect('/bookingref/', array('controller' => 'bookings', 'action' => 'bookingref'));
在控制器中:

public function bookingref(){


}

因此,在函数后面应该有一个视图名称。i、 e.bookingref.ctp

这是我将如何实施您的解决方案:

在Config/routes.php中添加:

Router::connect('/z/:reference',
    ['controller' => 'bookings', 'action' => 'bookingref'],
    [
        'pass' => ['reference'],// Passed to corresponding function argument (order matters if 2 or more)
        'reference' => '[a-z0-9]+'// RegExp validation if you need it
    ]
 );
在BookingController中,请使用:

public function bookingref($reference = null)
{
...
}

不幸的是,Router::redirect无法重定向到包含变量的基于字符串的URL。上面提到的基于控制器的方法是您最好的选择。

我认为这不是答案,我想将www.abc.com/z/abc123转换为www.abc.com/bookings/bookingref/?ref=abc123您需要重新表述您的问题,但也可以进行重定向。如果我在您的控制器函数中访问www.abc.com/z/abc123,请返回$this->redirect'/bookings/bookingref/?ref=abc123',谢谢,但我想在routes.php文件中执行此操作。我不想只为这个…创建一个控制器,有解决方案吗?