Где я должен написать логику контроллера, которая объединяет две модели

Представьте, что у меня есть PostController и CommentController, конечно же, у меня есть модель Post и модель Comment. Поэтому теперь я получаю запрос на внесение некоторых изменений как в модель «Пост», так и в модель «Комментарий» (может быть, эта логика модификации объединяет не только две модели, но и 3, 4, 5 или даже больше), поэтому не следует правильно писать логику в «Пост» или «Комментарий». контроллеры. Так, где я должен написать эту логику? я должен сделать новый контроллер?

2

Решение

Вы должны попробовать шаблон хранилища.

Идея этого шаблона состоит в том, чтобы отделить слой логики от контроллеров, каждая модель имеет хранилище со своей логикой, также каждый логический уровень, каждое хранилище может иметь другой уровень для хранения запросов к БД (уровень базы данных).

Затем вы можете вставить эти репозитории в контроллеры, через внедрение зависимостей в конструктор каждого, у вас будет меньше кода в контроллерах, логика более тестируема, и вы можете совместно использовать логику в более чем одном контроллере, не повторяя ее ,

Проверьте на это сообщения:

1

Другие решения

Вы должны использовать отношения по моему мнению.
Пожалуйста, проверьте документацию: https://laravel.com/docs/5.7/eloquent-relationships

Затем вы можете легко получить доступ и обновить оба, используя один контроллер.

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector