【问题标题】:advanced routes in cake php蛋糕php中的高级路线
【发布时间】:2017-06-26 11:07:28
【问题描述】:

我有这个问题要问: 我怎样才能把这个url“/公司/个人/用户/8/个人资料”(其中8是用户ID)使“控制器”是“公司”和“行动”而不是“个人资料”或“编辑”或仍然“照片”? 提前致谢

【问题讨论】:

    标签: php cakephp controller action


    【解决方案1】:

    你可以尝试这样的事情(我猜你使用的是 cakephp 3.x):

    Router::connect(
        '/company/personal/user/:id/profile',
        ['controller' => 'Company', 'action' => 'profile'],
        ['id' => '\d+', 'pass' => ['id']]
    );
    

    Router::connect(
        '/company/personal/user/:id/*',
        ['controller' => 'Company'],
        ['id' => '\d+', 'pass' => ['id']]
    );
    

    或在一个范围内

    $routes->connect('/company/personal/user/:id/profile',
        ['controller' => 'Company', 'action' => 'profile'],
        ['id' => '\d+', 'pass' => ['id']]
    );
    

    如您所见,我们检查 id 是否为整数。如果不是整数则不会调用绑定的动作,会返回 404。

    【讨论】:

    • 谢谢约翰。我的目标是获得一个抽象的“操作”(可以是配置文件、编辑或其他),如下所示:/company/personal/user/8/profile,带有操作配置文件,/company/personal/user/8/edit ,带有动作编辑等等。这个动作,自然会有一个视图文件。所有未找到的Controller函数或视图文件,将返回404
    • 要实现这一点,您需要添加一个范围和 activevate 范围后备
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-20
    • 1970-01-01
    相关资源
    最近更新 更多