yramarad31
@yramarad31

MVC (PHP) Как передать данные из вида в модель?

Привет всем!
Начал изучать MVC.
И возник вопрос.
Итак, у меня запускается приложение из index.php, метод route разбирает запрос пользователя и отдает управление одном из методов соответствующего контроллера. И в этом методе уже происходит создание модели и вида, а также передача данных из первого во второе.
Но тут что получается. У меня имеется, например, контроллер BlogController. В нем два метода - indexAction, который просто выдает записи из блога и addAction, который вывод форму для добавления записи в блог.
Ну и вопрос - как мне обработать метод addAction?
То есть модель возвращает данные в вид. Так как мне передать данные из вида в модель для того что бы записать данные в БД? Через контоллер я так понимаю. Ну а как именно?
Спасибо!
  • Вопрос задан
  • 5743 просмотра
Решения вопроса 1
У формы должен быть action типа "site.com/blog/save", ну и ты соответственно в saveAction разбираешь че там пришло из $_POST.

Еще можно проверять на наличие данных в $_POST прямо в addAction, но это несколько может ухудшить структуру кода.
Ответ написан
Пригласить эксперта
Ответы на вопрос 6
madmages
@madmages
Человек прямоходящий
запрос всегда идет в контроллер. контроллер всегда обрабатывает то что пришло и если надо задействует модельки и контроллер всегда рендерит вид. вот прописные истины mvc.
Если вам надо отправить что-то на сервер через форму то форма попадает в оборот на контроллер а контроллер решает давать эти данные в модель или нет.
Ответ написан
Комментировать
FanatPHP
@FanatPHP
Чебуратор тега РНР
как мне передать данные из вида в модель

Cлышал что-нибудь про протокол HTTP?
На всякий случай, почитай-ка Как работает РНР, где он выполняется?
И не спрашивай больше никогда, как передать данные "из вида в модель для сохранения". В браузере нету ни вида, ни контроллеров, ни модели.

Через контоллер я так понимаю. Ну а как именно?

делаешь saveAction, делаешь его экшеном формы и в нем сохраняешь
Ответ написан
Комментировать
@asdz
С представления данные попадают в экшен контроллера, Сначала правда происходит байндинг и валидация этих данных, собирается модель и передается в экшен. Экшен при необходимости рожает еще одну модель, которую передает в представление.
Ответ написан
Комментировать
@IceJOKER
Web/Android developer
Да в инете куча фреймворков , также примеров .

Через контроллер , модель отправляет данные (роутеру), тот обрабатывает и вызывает соответствующий метод в контроллере, который принимает значения из полей , обрабатываете , проверяете и т.д. а далее контроллер отдает это все в модель.
Опять же в инете кучу информации по-поводу MVC и не только
Ответ написан
Комментировать
nastya_cyxarik
@nastya_cyxarik
php, python dev
Вам необходимо в моделях создать класс для обработки данных с таблицы блог. В нем создать метод который приймет $_POST с параметрами, проверит и добавит в бд. Этот метод нужно вызвать в контроллере и передать ему $_POST. Из вьюза(вида) в форме action - это метод контроллера. В инпутах ставишь name и по ним потом сделаешь разбор в моделе.
Ответ написан
Комментировать
mcdb
@mcdb
То ли программист, то ли видение...
Если вы это всё пишете для "продакшена", пожалуйста, остановитесь и возьмите готовую CMS-ку.
Если для себя, в целях саморазвития, то лучше начните с изучения основ MVC, как и зачем оно так работает.
Ответ написан
Ваш ответ на вопрос

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

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