Здравствуйте.
Подскажите, пожалуйста, как сделать правильно в yii2 вызов вида и передача ему контента из некоего action'а по умолчанию в зависимости от url, хранимого в базе, не создавая при этом одноимённый action в контроллере?
На данный момент вызывается ошибка - 404
Пока приходит на ум переопределить в контроллере actionError и вызывать вид, передавая ему контент, что скорее всего неправильно.
Наверняка это обсуждалось не однократно и вопрос глупый, но что-то я в тупик зашёл и в поиске найти не удалось.
Action по умолчанию
Re: Action по умолчанию
Я бы тоже actionError переопределит, делается через конфиг. Посмотрите как оно в фреймворке реализовано (vendor\yiisoft\yii2\web\ErrorAction.php)
Если statusCode == 404 делаете запрос к БД, если там нет искомого урла продолжаете работать как с ошибкой, если есть - отрисовываете контент
Если statusCode == 404 делаете запрос к БД, если там нет искомого урла продолжаете работать как с ошибкой, если есть - отрисовываете контент
Re: Action по умолчанию
афигетьmiha писал(а):Я бы тоже actionError переопределит, делается через конфиг. Посмотрите как оно в фреймворке реализовано (vendor\yiisoft\yii2\web\ErrorAction.php)
Если statusCode == 404 делаете запрос к БД, если там нет искомого урла продолжаете работать как с ошибкой, если есть - отрисовываете контент
Re: Action по умолчанию
2lynicidn что, не красиво? Это вроде более "kiss" чем UrlManager переопределять.
Re: Action по умолчанию
то что должно делать urlRule, вы хотите , чтобы делало ErrorAction - красиво?
Re: Action по умолчанию
Да, загнул немного, у меня почему то было убеждение что нельзя написать правило которое ловит всё.
Можно так сделать:
В контролере SiteController соответственно:
Можно так сделать:
Код: Выделить всё
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'<param:[0-9a-zA-Z\-]+>' => 'site/catch',
],
],
Код: Выделить всё
public function actionCatch($param)
{
}
Re: Action по умолчанию
Большое Вам спасибо, в особенности за приведённый пример.
То, что нужно!
То, что нужно!
Re: Action по умолчанию
Изобретатели велосипедов http://stuff.cebe.cc/yii2docs/yii-web-a ... All-detail