Изучаю доку, пробую с контроллера передавать в шаблон страницы. Код (Text): <?php namespace frontend\controllers; use frontend\models\Tasks; use yii\web\Controller; class BrowseController extends Controller { public function actionIndex() { $task = Tasks::find()->all(); return $this->render('browsepage',compact('task')); } } Контроллер BrowseController.php по пути - D:\OSPANEL\domains\yii-taskforce\frontend\controllers, шаблон страницы browsepage.php куда хочу перекинуть находится по пути - D:\OSPANEL\domains\yii-taskforce\frontend\web. Выводу вот так - Код (Text): <?php echo $task; ?> Пишет ошибку Notice: Undefined variable: task in D:\OSPANEL\domains\yii-taskforce\frontend\web\browsepage.php on line 1 Как поправить?
Какое решение ? переведи БАНАЛЬНО ошибку на индуский, может тогда понятно будет в чем проблема ТыЖеПрограммист
LOL. @victor_orlov я понятия не имею про вот это: $this->render(). но походу он данные не принимает. ты вероятно знаешь что делает compact(). на "принимающей" стороне ему в пару должен быть extract(). он есть? пошагово продебажь. --- Добавлено --- https://www.php.net/compact https://www.php.net/extract
Просто контроллер не в курсе где лежит его вид. render('browsepage' предпологает что она лежит в пути по умолчанию для вида в папке browse. Но вид у него лежит в папке web. Вот и вся проблема И вот эта херь <?php echo $task; ?> . Человек скорее всего не запускает контроллер. А тупо запустил фаил browsepage.php --- Добавлено --- Напиши в контроллере PHP: <?php namespace frontend\controllers; use frontend\models\Tasks; use yii\web\Controller; class BrowseController extends Controller { public function actionIndex() { echo 'test'; } } чтобы убедится что ты запускаешь контроллер --- Добавлено --- Ну и в конфигурационном файле должен быть по умолчанию твой контроллер, чтобы не прописывать его в урле PHP: 'defaultRoute' => 'browse',