Laravel: сохранить модель в сервис-провайдере? - PullRequest
0 голосов
/ 24 января 2020

Я пытаюсь понять концепции контейнеров услуг и поставщиков услуг в Laravel.

На данный момент мое приложение состоит из (сгенерированных пользователем) моделей, представлений и контроллеров. Итак, довольно просто.

Но теперь я планирую создать задание cron, которое будет извлекать некоторые данные из внешнего сервиса. Эти данные должны храниться в моей базе данных. У меня также есть представление, где пользователи могут вручную вводить такие же данные. Мой контроллер проверяет ввод и сохраняет модель.

Однако я не хочу копировать логи c функции сохранения в моем контроллере, и я также не хочу вызывать эту же функцию из другого контроллера.

Так Я читал о поставщиках услуг. Я следовал некоторым учебникам и читал документы на laravel .com, но я почему-то не понимаю.

Например, у меня есть две модели: "Order" и "OrderEntry". В настоящее время единственной функцией в этих моделях является функция отношений, поэтому я могу вызывать $ order-> records () и $ entry-> order ().

Как я уже говорил, у меня есть OrderController, который проверяет некоторые вещи и хранит «Order» с помощью $ order-> save () в методе store OrderController.

Каков наилучший подход для этого? Также могу написать функцию магазина на самой модели «Заказ». Таким образом, я могу использовать один и тот же лог c в разных местах моего приложения.

1 Ответ

0 голосов
/ 24 января 2020

Опция ALTERNATE для провайдеров услуг и, возможно, не конечная цель:

У меня было требование для загрузки и анализа файлов, где пользователь может сделать это через пользовательский интерфейс, но разработчик Также необходимо обрабатывать файлы вручную. Я использовал команду , чтобы вызывать ее с контроллера или с интерфейса командной строки. Возможно, не так расширяемо, как поставщики услуг, но немного проще. Их особенно легко вызывать и запускать с задания cron.

Если вы выбрали поставщиков услуг, они, к сожалению, для меня немного неясны. Я думаю, может быть, рассмотрим масштаб того, что вы хотите сделать, и возможность повторного использования поставщика услуг, который вы создаете. Эта запись помогла мне"получить это" немного больше, но у меня еще не было сценария, где это было необходимо. Удачи!

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