@khodos_dmitry

Почему возникает ошибка при переходе на страницу с id в yii2?

При переходе на страницу /view/4 (или любую другую с id, после /view/) возникает ошибка:
An Error occurred while handling another error:
yii\base\InvalidRouteException: Unable to resolve the request: site/error in D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\base\Controller.php:128
Stack trace:
#0 D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\base\Module.php(528): yii\base\Controller->runAction('error', Array)
#1 D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\web\ErrorHandler.php(108): yii\base\Module->runAction('site/error')
#2 D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\base\ErrorHandler.php(111): yii\web\ErrorHandler->renderException(Object(yii\web\NotFoundHttpException))
#3 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\NotFoundHttpException))
#4 {main}
Previous exception:
yii\base\InvalidRouteException: Unable to resolve the request "view/4". in D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\base\Module.php:537
Stack trace:
#0 D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\web\Application.php(103): yii\base\Module->runAction('view/4', Array)
#1 D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\base\Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
#2 D:\OpenServer\domains\marlin-yii2-crud\web\index.php(12): yii\base\Application->run()
#3 {main}
Next yii\web\NotFoundHttpException: Page not found. in D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\web\Application.php:115
Stack trace:
#0 D:\OpenServer\domains\marlin-yii2-crud\vendor\yiisoft\yii2\base\Application.php(386): yii\web\Application->handleRequest(Object(yii\web\Request))
#1 D:\OpenServer\domains\marlin-yii2-crud\web\index.php(12): yii\base\Application->run()
#2 {main}

Если загружать страницу /view , то все нормально. Подставляется id = 30 по-умолчанию.
Код в контроллере:
public function actionView($id = 30)
    {	
		$one = MyList::getOne($id);
        return $this->render('view', ['city' => $one]);
    }

Код в \views\site\view.php
Город, c ID <? echo $city->id ?>: <? echo $city->city ?>

Код в моделе:
public static function getOne($id) {
		$data = self::find()->where(['id'=>$id])->one();
		return $data;
	}

Что-то где-то не отлавливает id, я подозреваю. Но где?
  • Вопрос задан
  • 649 просмотров
Решения вопроса 1
@eternalfire
вот так указывается параметром к url
public function actionView($id = 30)
если напишите
/view?id=1
будет всё ок. Нужно настраивать правила маршрутизации
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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