Intereting Posts
PHP mysql PDO отказывается устанавливать значение NULL html & php question (получить команду) Облачная платформа Google. Как загрузить файл изображения в ведро Google Cloud Storage? Как изменить встроенную систему аутентификации Laravel 5? Как сделать успешную регистрацию, скопировать содержимое одного столбца таблицы в другое? Важность секретного ключа сеанса в веб-среде Express Web Как мы можем конвертировать видео файлы в формат .flv в php Получить все дочерние, внуки и т. Д. Узлы под родителями, используя php с результатами запроса mysql как сделать слайдер изображения во время цикла MySQL max_user_connections vs max_connections Получение доступа для команды cmd с использованием функции php $ _SERVER не печатает значения unicode, поскольку это Регулярное выражение для преобразования строкового верхнего регистра в нижний регистр в php Как вызвать запрос AJAX на событие смены даты? Каков наилучший способ отправки электронной почты сотням получателей из приложения Zend Framework?

URL-адрес, не принимающий альфа-числовой параметр – Yii2-app-basic

Как только я прохожу 41 по URL. confirm.php отпечатки 41.

HTTP: // локальный / yii2-приложение основного / веб / сайт / подтвердить / 41

Но, когда я передаю «cfeb70c4c627167ee56d6e09b591a3ee» или «41a» в URL,

HTTP: // локальный / yii2-приложение основного / веб / сайт / подтвердить / 41а

он показывает ошибку

НЕ НАЙДЕНО (# 404)
Страница не найдена.

Вышеупомянутая ошибка возникла, когда веб-сервер обрабатывал ваш запрос. Если вы считаете, что это ошибка сервера, свяжитесь с нами. Спасибо.

Я хочу отправить идентификатор подтверждения пользователю, чтобы подтвердить свою учетную запись. Вот почему передается случайное число «cfeb70c4c627167ee56d6e09b591a3ee».

Итак, что я могу сделать, чтобы URL-адрес принимал альфа-числовой параметр.

конфиг / web.php

'urlManager' => [ 'showScriptName' => false, 'enablePrettyUrl' => true, 'enableStrictParsing' => false, 'rules' => [ '<controller>/<action>/<id:\d+>' => '<controller>/<action>' ], ], 

SiteController.php

 public function actionConfirm($id) { $id = Yii::$app->request->get('id'); $this->view->params['customParam'] = $id; return $this->render("confirm",array("id"=>$id)); } 

Изменить эту строку

 '<controller>/<action>/<id:\d+>' => '<controller>/<action>' 

к этому

 '<controller>/<action>/<id:[a-z0-9]+>' => '<controller>/<action>' 

Это должно сделать это

В текущем правиле указано, что id является числом ( \d+ ), поэтому он не работает в ваших примерах. Вместо того, чтобы изменять текущее правило, я бы добавил его специально для этого случая:

 'rules' => [ 'site/confirm/<id:\w+>' => 'site/confirm', '<controller>/<action>/<id:\d+>' => '<controller>/<action>' ],