cakePHP 1.3 路由和命名参数

发布于 2024-10-31 15:52:50 字数 234 浏览 2 评论 0原文

我有这种路由,用于在 cakePHP 1.2

Router::connect('/mycategory/my-region', array('controller'=>'search', 'action'=>'properties ''named'=>array('region'=>01)));

我怎样才能在 cake 1.3 中完成同样的任务,

谢谢

I had this kind of routes that used to work on cakePHP 1.2

Router::connect('/mycategory/my-region', array('controller'=>'search', 'action'=>'properties''named'=>array('region'=>01)));

How can I accomplish the same in cake 1.3

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

卷耳 2024-11-07 15:52:50

如果 my-region 始终等于 01,那么您的解决方案与我猜测的任何其他解决方案一样好。但是,如果您希望能够拥有多个不同的区域,那么我建议采用以下路线:

Router::connect('/mycategory/:my_region', 
    array('controller' => 'search', 'action' => 'properties'),
    array('pass' => array('my_region'), 'my_region' => '[\#a-zA-Z0-9_-]+')
);

这样您就可以在控制器中获取 my-region 的值,如下所示

function properties($my_region = NULL) {
    $regions = array('my-region' => '01');
    $id = $regions[$my_region];
}

:控制器部分可以通过 if/switch 语句得到很大的改进。只是想举一个非常基本的例子。

编辑:然后,像这样构建链接:

<?php echo $this->ExHtml->link(
    'My Region',
    array('controller' => 'search', 'action' => 'properties', 'my_region' => 'my-region')
); ?>

它应该自动输出:
我的区域

If my-region always equals to 01, then your solution is as good as any other I guess. If however you'd like to be able to have several different regions, then I would suggest something like the following route:

Router::connect('/mycategory/:my_region', 
    array('controller' => 'search', 'action' => 'properties'),
    array('pass' => array('my_region'), 'my_region' => '[\#a-zA-Z0-9_-]+')
);

And so you can get the value of my-regionin your controller like so:

function properties($my_region = NULL) {
    $regions = array('my-region' => '01');
    $id = $regions[$my_region];
}

The controller part can be greatly improved, with if/switch statements. Just wanted to give a very basic example.

Edit: And then, build your links like so:

<?php echo $this->ExHtml->link(
    'My Region',
    array('controller' => 'search', 'action' => 'properties', 'my_region' => 'my-region')
); ?>

which should automagically output:
<a href="/mycategory/my-region">My Region</a>

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文