Как отправить Request $request для функции Laravel вручную?
У меня есть функция, которую я хотел бы вызывать и вручную и так же отправлением POST на роут. Но из-за своей глупости получается 2 функции вместо одной
function foo(Request $request) {
$foo = $request->foo;
}
function bar($data = []) {
$foo = $data['foo'];
}
Вопрос: Как сделать функцию универсальной для обоих случаев, или как вручную собрать объект Request чтобы передать его в аргумент?
Ответы (1 шт):
Автор решения: Alexandr Revnuk
→ Ссылка
Создаете папку Services в app
Там создаете класс, например FooService
public function makeFoo ($request = null) {
//если ничего не передавать в метод - то реквест будет пустота, если передашь - будет реквест
// делаем свои дела и возвращаем результат
return $result;
}
Дальше два случая
Когда в контроллере, допустим это BarController, нужно сделать манипуляции с реквестом:
public function workWithRequest(Request $request, BarService $barService) {
$result = $barService->makeFoo($request)
}
Когда в контроллере просто нужно сделать манипуляции без реквеста:
public function workWithRequest(BarService $barService) {
$result = $barService->makeFoo()
}