Где я должен написать логику контроллера, которая объединяет две модели - PullRequest
0 голосов
/ 10 декабря 2018

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

Ответы [ 2 ]

0 голосов
/ 10 декабря 2018

Вы должны попробовать шаблон репозитория.

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

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

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

0 голосов
/ 10 декабря 2018

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

Вы можете легко получить доступ и обновить оба с помощью одного контроллера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...