Ваша оригинальная проблема проистекает из того факта, что интерпретация MVC CodeIgniter довольно ужасна. Эта структура притворяется, что View - это просто шаблон, а Model - это просто ORM (, что, по мнению некоторых, должно классифицироваться как анти-шаблон ). Что совершенно неправильно, и заставляет бота вести бизнес и представлять логику внутри контроллера.
Но давайте оставим View в стороне.
Модель в MVC не является классом или объектом. Модель представляет собой слой , который содержит всю бизнес-логику. На самом деле он состоит из экземпляров множества классов. Двумя наиболее распространенными группами являются доменные объекты [ 1 ] [ 2 ] (это то, что люди обычно называют «моделями») и объект, отвечающий за информацию хранение и поиск - обычно DataMappers . Слой модели также содержит автономные компоненты (как ваши, так и сторонние) и абстракции более высокого уровня - сервисы.
То, что у вас есть Validation
класс, может рассматриваться как автономный компонент, который может использоваться Доменным объектом для выполнения проверки или ожидать Доменного объекта быть переданным для проверки .. зависит от вашей реализации.
В вашей ситуации я бы справился с этим на уровне сервиса. Который либо предоставит экземпляру класса View
допустимый объект домена, либо объект, который представляет ошибку.
Некоторые материалы для чтения, которые могут вас заинтересовать:
Тогда опять .. что, черт возьми, я знаю обо всем этом ..