Каждый контроллер имел свой рабочий View? Всем привет. Такой вопрос. В конструкторе ксласса Controller создаю объект View. В последствии все контроллеры наследуются от класса Controller. В View подключаю шаблон и слой. Суть вопроса в том что объект View создаётся в каждом контроллере свой, но он не работает как нужно. То есть если просмотреть в вар дампе показывает в контроллере, то что надо. Но сам View пустой, никаие свойсва объекта не передались.
Код можно посмотреть https://github.com/iCount/rebicycle/tree/master/base
Как сделать что бы каждый контроллер имел свой рабочий View
Заранее благодарю за помошь

21 Авг 2019 в 07:01
190 +1
0
Ответы
1

Похоже, что проблема заключается в том, что вы создаете объект View в конструкторе класса Controller, но не передаете ему необходимые данные для отображения.

Для того чтобы каждый контроллер имел свой рабочий View с необходимыми данными, вам нужно передавать эти данные при создании объекта View в каждом контроллере. Это можно сделать либо через параметры конструктора, либо через методы объекта View.

Например, вы можете передать данные таким образом:

Создайте метод в классе Controller для создания объекта View с необходимыми данными:protected function createView($template, $data) {
$view = new View($template);
$view->setData($data);
return $view;
}В каждом контроллере вызывайте этот метод и передавайте необходимые данные:class HomeController extends Controller {
public function index() {
$data = [
'title' => 'Home Page',
'content' => 'Welcome to our website!'
];
$view = $this->createView('home_template.php', $data);
$view->render();
}
}

Таким образом, каждый контроллер будет иметь свой рабочий View с необходимыми данными. Надеюсь, это поможет вам разрешить проблему.

20 Апр 2024 в 13:09
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир