0

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 Answer 1

2

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

Sign up to request clarification or add additional context in comments.

1 Comment

thank you for answer. can you please tell me, how exactly should i do it? im new at yii . is it should be like 'teams/<teams_id:\d+>/players/create/' => 'players/create'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.