【问题标题】:CakePHP routing syntaxCakePHP 路由语法
【发布时间】:2011-04-30 20:24:05
【问题描述】:

如何在CakePHP做简单的路由?

我需要通过交换动作和控制器来路由每个 URL。 我只是无法理解占位符的语法。

例子:

/files/read/3

/read/files/3

--补充--

在我的应用程序中,我为控制器使用别名。 我想将具有某个关键字的每个 url 作为一个操作路由到某个控制器。
我还想提供原始控制器名称作为参数。
这是一个 1:1 的例子: 有别名:fruitsstreets
我想在操作中捕获的关键字是find
新控制器名称为finder
以下调用符合我的条件:
/fruits/find/apple/red/streets/find/longer
路由器应该捕获这些 url 并将它们转换为:
/finder/fruits/apple/red(或以其他方式提供参数,我不介意)和/finder/streets/longer

应该怎么做?

【问题讨论】:

    标签: cakephp syntax routes


    【解决方案1】:

    这是您需要输入/app/config/routes.php的代码行:

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

    了解更多:CakePHP book 中可以看出,路由配置有一些“保留”模式。一个例子是我在上面一行中使用的::action:controller。这些模式允许您广泛地调整路线。

    注意:更改 url 中控制器和操作的顺序可能会对其他 CakePHP 功能的功能产生意想不到的后果。我没有彻底测试过,但这只是一个一般性警告。

    小心:另外,我注意到您在示例中输入了:/files/read/3。也许这只是一个虚拟的例子,但如果你确实打算有一个名为“文件”的 MVC,请注意它会与 CakePHP 核心类发生冲突(例如,File 模型将与 File 类冲突)。

    无论如何,希望这个答案对您有所帮助。而且我真的很喜欢控制器和操作名称的更改如何使 url 更具可读性。 :D

    【讨论】:

    • 我非常感谢@YOMorales,我现在至少知道了一半。但是,我仍然不明白某些内容,我会将其添加到问题本身中。
    • 您好:稍后我会尝试回答您的后续问题,但我现在很忙。 :)
    猜你喜欢
    • 1970-01-01
    • 2013-12-19
    • 2016-05-11
    • 1970-01-01
    • 1970-01-01
    • 2017-03-29
    • 1970-01-01
    • 2012-02-03
    • 1970-01-01
    相关资源
    最近更新 更多