PHP MVC Как получить данные из модели?

137
23 сентября 2018, 16:10

Пытаюсь разобраться с данным php фреймворком: https://github.com/daveh/php-mvc Там используется Twig. Первый раз с ним сталкиваюсь.

В модели User есть метод getAll (выборка всех пользователей).

В контроллере главной страницы (Home) есть метод indexAction, который возвращает вид (представление) View::renderTemplate('Home/index.html');

Самый главный вопрос: Так как мне теперь вывести список всех пользователей в представлении?

Я не могу писать php код в index.html (нельзя изменять на .php, выдаёт ошибку).

Выяснил, что можно передавать переменные при создании представления:

View::render('Home/index.php', [
    'name'    => 'Dave'
]);

Но и это не сильно помогло. Вместо Dave мне нужен метод из модели, который возвратит мне список всех пользователей.

Буду чрезвычайно благодарен за помощь!

Answer 1

О, боже! Я разобрался!)

Нужно было:

  1. В контроллер главной страницы Home добавить use \App\Models\User;, чтобы обращаться к модели User и её методам.
  2. В этом же контроллере в методе формирования представления (View) добавить параметр (массив со списком юзеров, который и будет передаваться во View):

    View::renderTemplate('Home/index.html', [ 'users' => User::getAll() ]);

  3. Теперь у нас есть массив users, который можно вывести во View с помощью такой конструкции:

    {% for user in users %}
       <p>{{ user.name }}</p>
    {% endfor %}
    

Если я что-то неправильно написал, поправьте меня, пожалуйста) Это мой первый день в изучении Twig и практики с фреймворком php MVC)

READ ALSO
Как загрузить файл на сервер через ajax (Codeigniter)

Как загрузить файл на сервер через ajax (Codeigniter)

При использовании стандартных функций после отправки данных из инпута фал не записывается на серверНе пойму в чем дело, читал статьи, везде...

152
вопросов по выводу данных

вопросов по выводу данных

есть в таблице

158
Сохранение doc документа из HTML

Сохранение doc документа из HTML

Есть скрипт, в котором я вывожу HTML страницуВ начале кода вставил

169