【问题标题】:Add argument to cakephp 1.3 route向 cakephp 1.3 路由添加参数
【发布时间】:2014-01-21 16:40:37
【问题描述】:

我有一个 MVC 结构,User
它管理三种类型的用户,用户、客户和租户;这一切都是从User 完成的。
我需要的是一个隐藏参数,它将被添加到每个路由中,它会告诉控制器如何完成它的工作。

例子:

/clients/unverified/5 将被路由到/users/unverified/client/5
/tenants/unverified/5 将被路由到/users/unverified/tenant/5

如果您对应该如何做有更好的了解,我也将不胜感激。

【问题讨论】:

  • 请解释一下...为了清楚起见,再多一点...
  • 不确定我还能添加什么。基本思想是为不同的路由获取相同的控制器>动作,并带有一个隐藏参数来告诉使用哪个路由

标签: routing cakephp-1.3


【解决方案1】:

您可以使用相同的控制器操作,如下所示:

Router::connect('/clients/unverified/:limit',
                array('controller' => 'users', 'action' => 'unverified',
                'client','5')
);
Router::connect('/tenants/unverified/:limit',
                array('controller' => 'users', 'action' => 'unverified',
               'tenants','5')
);
Router::connect('/whatever/unverified/:limit',
                array('controller' => 'users', 'action' => 'unverified',
               'whatever','5')
);

在用户控制器中

 # $type would be clients/ tenants/ watever
 # $limit would be 5 
function unverified($type='user',$limit=5){

}

【讨论】:

    【解决方案2】:

    几个选项突然出现在我面前:

    1./app/config/routes.php 中使用Router::connect()

    此方法应导致传入 ID 而无需指定它(以及任何其他参数)。

    Router::connect('/clients/unverified/*', array('controller' => 'users', 'action' => 'unverified', 'client'));
    Router::connect('/tenants/unverified/*', array('controller' => 'users', 'action' => 'unverified', 'tenants'));
    

    More info on routing in Cake 1.3.

    2. 创建 clientstenants 控制器,unverified 操作并将它们简单地重定向到 users 控制器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-22
      • 2011-02-02
      相关资源
      最近更新 更多