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?

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