Machez
@Machez
Бу!

Как в Yii2 воспринимать цифру из URL как параметр к действию контроллера?

Предположим есть URL /site/view/1, где 1 - это идентификатор записи. Как в Yii2 сделать, чтобы 1 передавался в действие actionView котроллера SiteController в виде параметра?
  • Вопрос задан
  • 169 просмотров
Решения вопроса 1
mhthnz
@mhthnz
PHP, YII2, Golang, Linux
В конфиге, в urlManager'е добавляете правило:
'urlManager' => [
	'enablePrettyUrl' => true,
	'showScriptName' => false,
	'enableStrictParsing' => false,
	'rules' => [
		'site/view/<id:\d+>', // Если частный случай
		'<controller:\w+>/view/<id:\d+>', // Самое частое использование, для экшина view каждого контроллера
		'<controller:\w+>/<action:\w+>/<id:\d+>', // Если нужно преобразование для всех контроллеров и экшинов
	]
]

id автоматически будет добавлен в массив $_GET, и можно получить его из экшина:
public function actionView($id)
{
    ....
}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы