#php #yii2
#php #yii2
Вопрос:
Я создал представление в views/sites/example.php
<?php
use yiihelpersHtml;
?>
<?= Html::encode($message) ?>
Затем в SiteController.php Я добавил
public function actionExample($message = 'Hello')
{
return $this->render('example', ['message' => $message]);
}
В main.php , urlManager настроен
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => array(
'<controller:w >/<id:d >' => '<controller>/view',
'<controller:w >/<action:w >/<id:d >' => '<controller>/<action>',
'<controller:w >/<action:w >' => '<controller>/<action>',
),
],
когда я пытаюсь получить доступ к странице на localhost /example, я получаю 404. Что я пропустил??
Комментарии:
1. Можно ли найти вашу страницу по URL с
site/example
помощью?2. Спасибо, @SergiyT. да, это возможно. Как мне это исправить? Я должен добавить, что это установленное приложение, над которым я только начал работать с нулевым опытом работы с Yii…..
3. Вы можете добавить пользовательский маршрут. Что-то вроде
'example' => 'site/example',
в части правил urlManager.4. @SergiyT. спасибо за помощь, это работает! Я не могу пометить это как принятый ответ, если вы не хотите опубликовать его в качестве ответа?
Ответ №1:
В разделе правил части кода urlManager есть правила, для которых проверяется URL, чтобы определить контроллер, действие и т. Д.
Поскольку ваше действие находится в SiteController, к нему можно получить доступ через //localhost/site/example/ url (правило '<controller:w >/<action:w >' => '<controller>/<action>'
).
Поэтому, чтобы сделать ваше действие доступным через //localhost/example/ url, в раздел правил следует добавить другое правило.
Если вы добавите 'example' => 'site/example',
в правила, ваше действие будет доступно по желаемому URL.
Существует также руководство по https://www.yiiframework.com/doc/guide/2.0/en/runtime-routing таким образом, вы сможете лучше понять маршрутизацию в yii2.
Комментарии:
1. Большое вам спасибо!