Логика в ларавеле пишеться в контроллерах?

По концепции мвц логика же в моделях пишеться разве нет?
Смотре в ларавеле запись и выборка и все прочее в контроллерах. Это так и есть?
  • Вопрос задан
  • 2439 просмотров
Пригласить эксперта
Ответы на вопрос 7
MVC - это разделение всей логики приложения на 3 компонента. Логика есть веде, в каждом из этих компонентов.

Скорее всего вопрос заключается в том, где обрабатывать те или иные данные перед тем как отдать их представлению, куда поместить логику. Принято считать, и везде пишут, что контроллер должен быть тонким. Значит, чтобы было правильно, всю логику пихаем в модель. Но тут нужно понимать, что Модель - это не только класс Active Record, или ORM - это еще классы различных сервисов, репозитории например, объекты форм, валидаторы - это ведь то же модели, и в них тоже есть логика.
Ответ написан
ajaxtelamonid
@ajaxtelamonid
Laravel
То, что весь код может писаться в только контроллерах, моделях и вьюхах и больше нигде, потому что мы пишем MVC (а что ещё бывает ?) - это заблуждение, от которого надо избавляться как можно быстрее. Потому что код по большому счёту нельзя писать ни в моделях, ни в контроллерах, ни во вьюхах - ему там не место. Код надо писать в php-классах, которые потом подключать в контроллеры, файлы обработки cli-команд, команды, выполняемые в очереди, в файлы-демоны и т.п.. Код должен выдерживать процедуру смена php-фреймворка просто путём копирования всех файлов и правки классов-репозиториев и других классов сопряжения с конкретным фреймворком. Если ваш код намертво спаян с текущим фреймворком - это признак того, что что-то пошло не так.

Создавайте внутри папки app свои папки, раскладывайте там классы и подключайте их в конструкторе контроллеров. Почитайте, какие бывают типы классов с точки зрения архитектуры приложения, почитайте про принцип SOLID. Почитайте про Domain Driven Design, погуглите доклады, например https://www.youtube.com/watch?v=rjtbCyacJas .
Учёба - это постоянный процесс, не останавливайтесь.
Ответ написан
Комментировать
Antonchik
@Antonchik
Программирую на HTML
Контролер это прослойка между бизнес логикой и пользователем, контролер получает данные от пользователей и отдает необходимые данные из модели
Ответ написан
@pantagruel964
Смотре в ларавеле запись и выборка и все прочее в контроллерах.

Где напишите, там и будет. Фреймворк вас не ограничивает и ничего не навязывает.

По концепции мвц логика же в моделях пишеться разве нет?

Разберитесть, что такое модель. Впечатление, что для вас модель - это файл Model.php
Ответ написан
Sanasol
@Sanasol Куратор тега Laravel
нельзя просто так взять и загуглить ошибку
в офф доках даже валидация в контроллере
Написано час назад

оффдоки это доки для того чтобы узнать как работает та или иная функция.
Там нет задачи научить вас использовать MVC, задача доков дать простейший код чтобы вы поняли как работает что-то.

Там не расписывают что и куда нужно пихать.

контроллеры или модели вопрос холиварный.

В моделях удобнее, если проект сложный.

В контроллерах сойдёт если насрать где и что, лишь бы работало.
При этом использовать не надо будет повторно функционал в другой части проекта.
Иначе вылезают вопросы: как из контроллера B вызвать метод контроллера B.
Ответ всегда один: никак, контроллеры это не какие-то глобальные классы с функциями, у них конкретный один функционал. И вызвать одно из другого нельзя, это порнография.
Ответ написан
Комментировать
Maksclub
@Maksclub
maksfedorov.ru
ТТУК -- тупой толстый уродливый контроллер
Ответ написан
Комментировать
Q2W
@Q2W
По логике вещей должно быть так:

Модель отвечает только за валидность данных.
Контроллер отвечает за бизнеслогику.
Представление понятно за что отвечает.

Бизнеслогику в моделях держат весьма странные специалисты.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы