Во-первых, нет никакого ряда правил, это собирается работать в каждой ситуации. То, как Вы моделируете, Вы - приложение, во многом зависит от типа и сложности проекта. Однако вот некоторые идеи:
- Ничто неправильно с вызовом репозитория от контроллера. Просто удостоверьтесь, что контроллер не содержит бизнес-логику.
- сервис заботится о (немного) бизнес-логика и использует другие сервисы сделать так. Репозиторий является типом сервиса, нет ничего неправильно с вызовом его от сервиса.
- модель должна содержать бизнес-логику, на самом деле необходимо всегда пытаться поместить его в модель сначала. При необходимости во внешних данных для выполнения той бизнес-логики (из другой модели, или из репозитория) тогда необходимо создать сервис.
- Ничто неправильно с проверкой в моделях. Используя атрибуты или не вопрос вкуса (если Вам нравится он тогда, это хорошо). Переместите проверку за пределами модели, если это становится слишком сложным (создайте внешний ряд правил).
самый важный, сделайте то, что чувствует себя хорошо (это обычно - правильный ответ).
ответ дан gcores 26 November 2019 в 19:56
поделиться