Расширение Illuminate\Http\Request очищает заголовок Accept
Я продлил Illuminate\Http\Request
класс и передаю его моему контролеру.
В моем контроллере я проверяю, есть ли в запросе Accept: application/json
заголовок, используя $request->wantsJson()
метод.
Если я использую базу Illuminate\Http\Request
Класс работает отлично, но если я использую свой расширенный класс, он говорит, что заголовок Accept пуст.
use Illuminate\Http\Request;
class MyRequest extends Request
{
...
}
контроллер
class MyController
{
public function search(MyRequest $request) {
if ($request->wantsJson()) {
// return json
}
// return view
}
}
Это не работает. Если я вместо того, чтобы заменить MyRequest
с экземпляром Illuminate\Http\Request
оно работает. Если я var_dump $request->header('Accept')
, это пустое значение при использовании MyRequest.
1 ответ
Простираться Illuminate\Foundation\Http\FormRequest
вместо:
use Illuminate\Foundation\Http\FormRequest;
class MyRequest extends FormRequest
{
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
//
];
}
}
FormRequestServiceProvider
выполняет серию шагов настройки, которые устанавливают запрос. Конечно, вы можете повторить это у своего поставщика услуг.