Где проверить контроллер данных или модель в CodeIgniter - PullRequest
1 голос
/ 17 марта 2012

Я знаю, что способ CI сделать это - проверить соответствие правилам контроллера, но я думаю, что это не окончательный подход.Что бы вы порекомендовали мне сделать, следуя указаниям CI или проверить входящие данные в Модели, чтобы моя модель всегда защищалась от неверных данных.Мое понимание MVC заключается в том, что контроллеру не нужно хранить какую-либо программную логику, вся логика реализована в модели.Буду признателен, если вы сможете подробно объяснить, почему оба подхода хороши, а какие нет, и какой рекомендуется?

Приветствия

1 Ответ

6 голосов
/ 17 марта 2012

Серебряной пули нет.

Валидация в модели защищает вас от программных источников недействительности. Однако пользователи не получают прямой доступ к вашим моделям, а только через контроллеры и, в конечном итоге, через формы. Большую часть времени вам требуется дополнительная проверка, которая характерна для определенной формы или определенного контроллера и которая не подходит для модели.

Это аргумент в пользу слоя проверки вне модели. В идеале вы можете создать отдельный объект проверки (может быть привязанный к определенной форме), который используется контроллером. Иногда вам может потребоваться дополнительная проверка в самом контроллере.

Проверка не является двоичной. Существует много уровней проверки и разные типы проверки, необходимые в разных контекстах. Вам может потребоваться проверка как в модели, так и в контроллере.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...