Я работаю над приложением Laravel 5, которое использует только маршруты API. Я создал макрос, чтобы расширить метод добавления cookie помощника ответа. Но я столкнулся с ошибкой, что мой макрос не существует.
Мы используем это для возврата ответа:
return response()->json($data, $status)
->cookie(
'COOKIE_NAME',
$value,
$expiration,
'/',
app()->environment('production') ? config('app.domain') : null,
app()->environment('production'),
true
);
поскольку данные после истечения срока действия всегда одинаковы для всех конечных точек с файлом cookie, я хочу создать макрос, который автоматически добавит эти данные в файл cookie и сократит код до этого:
return response()->json($data, $status)
->httpCookie('COOKIE_NAME, $value, $expiration);
Я создал ResponseServiceProvider
и добавил макрос, используя метод Response::macro
.
Вот мой код макроса:
public function boot()
{
Response::macro('httpCookie', function ($name, $value, $expiration) {
$isProd = app()->environment('production');
return response()->cookie(
$name,
$value,
$expiration,
'/',
$isProd ? config('app.domain') : null,
$isProd,
true
);
});
}
Затем, пытаясь проверить конечную точку, я столкнулся с ошибкой:
BadMethodCallException
Method Illuminate\Http\JsonResponse::httpCookie does not exist.
Как я могу решить эту проблему? Спасибо.
Response
от поставщика услуг? (Это может бытьIlluminate\Support\Facades\Response
илиIlluminate\Http\Response
) - person Shizzen83   schedule 12.07.2019Illuminate\Support\Facades\Response
- person Letum Falx   schedule 13.07.2019