dt56449492 2016-12-05 00:24
浏览 14
已采纳

url yii2中的嵌套控制器和操作

I have a database with tables teams, with fields id and name, and players with fields id, team_id and name. I want to create records in the players table AFTER I create a record in the teams table.

For example, I create a team, go to edit - the URL look like this: /teams/update?id=1 . In the edit section, there is link with text add player, which is associated with a controller Players Controller. Now the URL of Players Controller looks like /players/create (in the create section) but I want it to be /1/players/create, where 1 corresponds to the team_id value. How can I achieve this?

  • 写回答

1条回答 默认 最新

  • donglin5770 2016-12-05 01:04
    关注

    Add two rules in the urlManager setting.

    'rule' => [
        ...
        "<id:\d+>/<module:\w+>/<controller:\w+>/<action:\w+>"=>"<module>/<controller>/<action>",
        "<id:\d+>/<controller:\w+>/<action:\w+>"=>"<controller>/<action>"
    ]
    

    Left side of the equal is pattern, right side of the equal is the route

    The id in "< id:\d+ >" means that the arguments to the action like this

    public function actionCreate($id)
    

    So you can change "id" to "teams_id"

    "< module:\w+ >" means that match all modules, the other two modes are the same

    Read more: urlmanager-rules-detail

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作
  • ¥15 js,页面2返回页面1时定位进入的设备
  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复