@procode
Разработчик

Пихать много логики в модель — это Laravel way?

Здравствуйте.

Немного предыстории: пару лет назад я брался изучать Yii2 (быстро это дело прекратил, ибо Yii2 - это какое-то надругательство над здравым смыслом) но вот помню, что там было что-то насчет "толстой модели - тонкого контроллера" - а в Laravel, как я вижу в примерах, всю логику размещают в контроллер.

Сейчас я делаю проект с мягким удалением отношений между моделями и мне кажется разумным разместить логику манипуляций с отношениями в методах модели.

Например, определить для User метод softToggle() для манипуляции отношениями с Role в самой модели User.

Насколько это общепринято в случае с Laravel?

Или вообще без разницы?

Спасибо.
  • Вопрос задан
  • 708 просмотров
Решения вопроса 2
Sanasol
@Sanasol
нельзя просто так взять и загуглить ошибку
в примерах, всю логику размещают в контроллер.


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

толстой модели - тонкого контроллера

в целом тема холиварна, и до сих пор есть два лагеря за этот вариант или наоборот.
Тут уж каждый сам решает.
Ответ написан
mzcoding
@mzcoding
Web-Разработка
Описывать логику в моделях в общем считается верным. Еще в сторону service layer можете посмотреть.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@EvgeniiR
https://github.com/EvgeniiR
Фреймворк -это инструмент для решения ваших задач. Не вы должны подстраиваться под фреймворк, нужно подбирать инструмент подходящий для ваших целей.
По хорошему вся ваша бизнес-логика вообще никак не должна зависеть от фреймворка, и в этом плане у Yii и Laravel всё не очень хорошо, но Ларавель хоть компонентный, и кастомизировать можно, если понимать что делаешь.
Ответ написан
@procode Автор вопроса
Разработчик
и в этом плане у Yii и Laravel всё не очень хорошо.


а где хорошо?
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы
22 нояб. 2024, в 22:26
3500 руб./за проект
22 нояб. 2024, в 21:47
3000 руб./за проект
22 нояб. 2024, в 21:44
50000 руб./за проект