Хороший способ подумать о MVC - спросить себя: «Если бы я изменил X в слое вида, что бы мне пришлось изменить в слоях Controller или Model?»
В идеале уровень модели должен существовать независимо от уровня представления, поскольку он функционирует в качестве основного API вашего приложения. Изменения в представлении не должны требовать доработки в модели.
Контроллер - это то, что принимает внешний ввод (например, от пользователя), вызывает на уровне модели, чтобы обработать его, а затем определяет, какое представление предоставить в качестве ответа.
В вашем примере $ _POST содержит необработанный ввод, а ключи в массиве $ _POST определяются тем, как они закодированы в ваших представлениях в основном HTML. Вы не должны ожидать, что ваша модель будет знать, какие действительные ключи находятся в $ _POST или нужно ли значения, которые необходимо обработать, преобразовать и т. Д., Оставьте это задание контроллеру, что должно гарантировать, что значения, которые он передает модели, будут соответствовать условия, которые ожидают классы / функции уровня модели.