MasterGerold
@MasterGerold

Почему не открывается Action Yii2?

Доброго времени суток! Делаю полностью всё по уроку но почему то у меня не работает переход на ссылку.
Missing argument 1 for app\controllers\HouseController::actionView()

namespace app\controllers;
 
use app\models\House;
use yii\base\Controller;
use Yii;
 
class HouseController extends Controller {
     public function actionView($id){  // Эта строчка подсвечивается красным.
        $id = Yii::$app->request->get('id');
        $viewHouse = House::findOne($id);
 
        $this->render('view', compact('viewHouse'));
    }
}
  • Вопрос задан
  • 652 просмотра
Решения вопроса 2
@tosha_lol_daaa
Вместо\yii\base\Controller
Попробуйте \yii\web\Controller
Ответ написан
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
class HouseController extends Controller {
     public function actionView($id){ 
        // $id = Yii::$app->request->get('id'); id у вас уже есть, это глупость, удаление этой строчки никак не повлияет на код
        $viewHouse = House::findOne($id);

        return $this->render('view', ['model'=>$viewHouse]); // как-то так должно быть, надо же что-то возвращать (return пропущен)
    }
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@VitGun
вы параметр не передаете. Как ссылка выглядит, по которой вы переходите?
Ответ написан
Комментировать
Скорее всего, если передаете id, то не находит запись с таким id в переменной $viewHouse получается NULL или false. Плюс ещё нужно возвращать $this->render('view', compact('viewHouse'));
return  $this->render('view', compact('viewHouse'));

И ссылка должна быть /house?id=ВАШ_ID если роуты настроены по дефолту.
Ответ написан
Ваш ответ на вопрос

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

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