Я создал в своем laravel 5.6
запрос специальной формы примерно так:
<?php
namespace Noetic\Plugins\blog\Requests;
use Illuminate\Foundation\Http\FormRequest;
class StorePostRequest 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 [
];
}
}
Когда я ничего не помещаю в правила, я заставляю работать контроллеры, а когда я помещаю какое-либо правило внутрь, предположим, что я помещаю
return [
'title' => 'required',
'body' => 'required',
];
Он работает до тех пор, пока не будет подтвержден истинным, я имею в виду, что если заголовок и тело переданы, он проверяется, но когда я не отправляю никаких данных для заголовка или тела, я не получаю ошибок в качестве ответа, я вижу домашнюю страницу, принадлежащую сети промежуточное ПО, я хочу вернуть данные об ошибке в качестве ответа.
Мой контроллер выглядит примерно так:
public function store( StorePostRequest $request )
{
if ($request->fails()) {
return $this->errorResponse($request->errors()->all());
}
$data = $request->only('title', 'body');
$post = Post::create($data);
return response()->json(['post'=> $post ],200);
}
Помогите мне с этим. Спасибо
StorePostRequest
автоматически проверит и отправит ответ об ошибке, вам не нужно делать$request->fails()
. Проверьте это. - person The Alpha   schedule 01.05.2018ajax
запрос? Если вы отправляетеajax
запрос,Laravel
отправляет ошибки как json, иначе вы получите ответ перенаправления. Итак, убедитесь, что вы отправляете запрос правильно, чтобыLaravel
мог определить тип ответа, который он должен отправить. - person The Alpha   schedule 01.05.2018Content-Type
asapplication/json
. Я используюpostman
для тестирования api. - person Nitish Kumar   schedule 01.05.2018accept
, то есть:Accept: application/json
. - person The Alpha   schedule 01.05.2018