@Vyacheslav_Shilov

Почему в действие контроллера не передается параметр?

Почему в действие контроллера не передается параметр "id"? urlManager раскоменчен
Адресная строка выглядит так: http://parms/blog/site/index/id/6

Код действия контроллера:
public function actionIndex($id)
	{
		$this->render('index', array('id'=>$id));
	}


Код вью контроллера (index.php):
<?php
   /* @var $this SiteController */
   /* @var $id int */

   $this->pageTitle=Yii::app()->name;
  
   echo $id;
   CVarDumper::dump($id);
   echo $id;

   ?>


При отображении в браузере выдает "null"
  • Вопрос задан
  • 85 просмотров
Решения вопроса 2
myks92
@myks92 Куратор тега Yii
Нашёл решение — пометь вопрос ответом!
Проблема очевидно не в рендеринге и роутах, а в передаче самого параметра. Вы нигде не показали ссылку и какой параметр там передается. Возможно у вас в параметр $id передается null. Посмотрите внимательно. Проверить этом можно очень просто выполнив простую команду не в шаблоне, а контроллере:
public function actionIndex($id)
{
     var_dump($id); die();
}

Так же не забывайте про return:
public function actionIndex($id)
{
    return $this->render('index', array('id'=>$id));
}
Ответ написан
Комментировать
@Vyacheslav_Shilov Автор вопроса
Когда использовал дефолтный контроллер ничего не работало. Когда создал свой - все заработало.

Код контроллера:
class HomeController extends Controller
{
	public function actionIndex($id= '', $any = '')
	{
        $this->render('index', array('id'=>$id, 'any' => $any));
	}
}


Код вью:
echo "id = " . $id;
echo "<br>";
echo "any = " . $any;
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы