2012-03-16 2 views
1

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

Cheers

+2

Возможный дубликат: http://stackoverflow.com/questions/4568553/mvc-in-php-fat-model-or-fat-controller –

ответ

6

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

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

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

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

Смежные вопросы