Пихать много логики в модель — это Laravel way? Здравствуйте. Немного предыстории: пару лет назад я брался изучать Yii2 (быстро это дело прекратил, ибо Yii2 - это какое-то надругательство над здравым смыслом) но вот помню, что там было что-то насчет "толстой модели - тонкого контроллера" - а в Laravel, как я вижу в примерах, всю логику размещают в контроллер. Сейчас я делаю проект с мягким удалением отношений между моделями и мне кажется разумным разместить логику манипуляций с отношениями в методах модели. Например, определить для User метод softToggle() для манипуляции отношениями с Role в самой модели User. Насколько это общепринято в случае с Laravel? Или вообще без разницы? Спасибо.
В Laravel действительно существует концепция "толстой модели - тонкого контроллера", однако пихать много логики в модель не всегда является хорошей практикой. Лучше всего придерживаться принципа единственной ответственности и размещать логику в соответствующих сервисах или репозиториях.
Если вам кажется разумным размещать логику манипуляций с отношениями в методах модели, то можно использовать такой подход. Однако следует помнить о том, что модели должны быть прежде всего отвечать за работу с базой данных и представлять данные, а не содержать сложную бизнес-логику.
Вы также можете создать отдельный сервис или репозиторий для выполнения дополнительных операций с моделями, чтобы соблюсти принцип единственной ответственности и сделать ваш код более структурированным и легким для поддержки.
В целом, важно следовать принципам чистой архитектуры и выбирать подход, который будет наиболее удобен и понятен вашей команде разработчиков.
В Laravel действительно существует концепция "толстой модели - тонкого контроллера", однако пихать много логики в модель не всегда является хорошей практикой. Лучше всего придерживаться принципа единственной ответственности и размещать логику в соответствующих сервисах или репозиториях.
Если вам кажется разумным размещать логику манипуляций с отношениями в методах модели, то можно использовать такой подход. Однако следует помнить о том, что модели должны быть прежде всего отвечать за работу с базой данных и представлять данные, а не содержать сложную бизнес-логику.
Вы также можете создать отдельный сервис или репозиторий для выполнения дополнительных операций с моделями, чтобы соблюсти принцип единственной ответственности и сделать ваш код более структурированным и легким для поддержки.
В целом, важно следовать принципам чистой архитектуры и выбирать подход, который будет наиболее удобен и понятен вашей команде разработчиков.