Я относительно не знаком с CodeIgniter и философией MVC в целом, поэтому я пытаюсь прояснить это, прежде чем делать какие-либо вредные привычки.Логика в модели или в контроллере с CodeIgniter?
У меня есть приложение, которое регистрируется. Пользователи. В настоящее время, поток, как это:
- Пользователь переходит к «somewebpage/регистр», который загружает функцию «зарегистрировать» контроллера
- контроллер проверяет, чтобы увидеть, если форма будет отправлена - если это было нет, покажите им форму, в противном случае вызовите функцию «register» модели «users».
- Модель пользователей проверяет, уже ли выполнено имя пользователя. Если это так, он возвращает код ошибки (определенный как константа PHP) для этой ошибки.
- Если имя пользователя еще не было принято, модель регистрирует пользователя и возвращает значение ИСТИНА.
- Контроллер собирает то, что возвращает функция «регистрации» модели, и показывает страницу с ошибкой, страницу успеха или страницу сбоя базы данных на основе кода ошибки.
Как вы можете видеть, я попытался перемещать как можно больше логики в модель. Единственной логикой, с которой я не мог переместиться, была проверка валидации формы, поскольку, похоже, CodeIgniter заставляет вас поместить ее в контроллер. (Если никто не знает об этом)
Как я должен развиваться с CodeIgniter или с MVC вообще?
Заранее благодарим за любую помощь.
Модель в MVC должна иметь логику, поскольку она является моделью домена, но нет ничего, что помешало бы ей разбить ее на разные уровни. – airmanx86
Благодарим вас за помощь, musoNic80 и airmanx86! Вы, ребята, разъяснили этот запутанный вопрос. Я был обеспокоен - никто не отвечал. ;) Спасибо! –
@ airmanx86, musoNic80 Я нашел ваше обсуждение полезным, но у меня есть вопрос. Это хороший способ применить логику в модели на основе данных, переданных от контроллера к модели. Например, если переменная пуста, я хочу запустить этот запрос else этим запросом. Это хороший подход? –