【问题标题】:Attach "admin/" prefix into url in Yii.urlManager在 Yii.urlManager 的 url 中附加“admin/”前缀
【发布时间】:2014-01-10 21:17:59
【问题描述】:

我的 Yii url 有问题。

我想为 gii 创建的每个 url 添加 'admin/' 前缀(我的模型的 CRUD)。

当我为“Offer”创建基本 CRUD 时,{add|edit|del} 视图的 url 从 'offer/...' 开始,但我想在 'offer/' 之前添加 'admin/'。

  • offer/1 -> admin/offer/1
  • 报价/索引 -> 管理员/报价/索引
  • offer/update/1 -> admin/offer/update/1

也许有人可以指出正确的答案或给我一些建议。

谢谢你:)

【问题讨论】:

标签: php yii


【解决方案1】:

这是基于您的示例的解决方案。将以下内容添加到 'urlManager' 的 'rules' 数组中:

'admin/<controller:\w+>/<id:\d+>'=>'<controller>/view', //offer/1 -> admin/offer/1
'admin/<controller:\w+>/<action:\w+>'=>'<controller>/<action>', //offer/index -> admin/offer/index,
'admin/<controller:\w*>/<action:\w+>/<id:\d+>'=> '<controller>/<action>', //offer/update/1 -> admin/offer/update/1

你可以注意到那里的模式。更多关于 url manager 的信息可以在这里找到:http://www.yiiframework.com/doc/guide/1.1/en/topics.url

【讨论】:

  • 谢谢,对我很有帮助。但是,我只是想办法做这样的事情。在 gii 基本 CRUD 中创建时,我们可以将“Controller ID”设置为“admin/your_controller”。之后,我们的控制器在“admin/your_controller/{index|update|delete|...}”下可用
【解决方案2】:

您可以创建自定义 url 规则以在 urlManager 中使用。它将路由(假设您使用 CHtml::link 或类似的)重写为您想要的格式。当用户点击链接时,url 路径被转换回正确的路由并提供给正确的控制器。

这里有更多信息和一个例子。

http://www.yiiframework.com/doc/guide/1.1/en/topics.url#using-custom-url-rule-classes

【讨论】:

    猜你喜欢
    • 2011-07-06
    • 2013-05-24
    • 2018-11-21
    • 2013-03-12
    • 1970-01-01
    • 2021-07-06
    • 1970-01-01
    • 2018-11-10
    • 1970-01-01
    相关资源
    最近更新 更多