Данные неверны - PullRequest
       6

Данные неверны

0 голосов
/ 24 мая 2018

Я строю API, используя laravel 5.5, и я реализую метод store с проверкой.В обычном приложении Laravel, если любое из полей не работает, вы получаете «Поле *** обязательное», но я не понимаю, почему?я продолжаю получать «Указанные данные были недействительными», и это выбрасывает только это и не говорит вам, какое поле является неправильным.Что я делаю не так.

    $profile = new Profile();
        $profile->dob = $request['dob'];
        $profile->first_name = $request['first_name'];
        $profile->last_name = $request['last_name'];
        $profile->email = $request['email'];
        $profile->id_type = $request['id_type'];
        $profile->id_number = $request['id_number'];
        $profile->address = $request['address'];
        $profile->gender = $request['gender'];
        $profile->user_id = $user->id;
        $profile->save();
  public function validateRequest (Request $request){
    $rules = [
        'dob'=>'required',
        'first_name'=>'required',
        'last_name'=>'required',
        'email'=>'required',
        'id_type'=>'required',
        'id_number'=>'required',
        'address'=>'required',
        'gender'=>'required|in:female|male|none',
    ];
    return  $this->validate($request,$rules);
}

, поэтому, если я ничего не введу в поле 'dob', не уйду или не отправлю запрос на публикацию без ввода чего-либо, я должен получить поле bla bla.но вместо этого я получаю этот журнал ошибок от почтальона.

"message": "The given data was invalid.",
    "status_code": 500,
    "debug": {
        "line": 306,
        "file": "/Users/robertjoseph/Documents/Development/Aglett/Uncompleted/WAPI/vendor/laravel/framework/src/Illuminate/Validation/Validator.php",
        "class": "Illuminate\Validation\ValidationException",
        "trace": [
            "#0 /Users/robertjoseph/Documents/Development/Aglett/Uncompleted/WAPI/vendor/laravel/framework/src/Illuminate/Foundation/Validation/ValidatesRequests.php(46): Illuminate\Validation\Validator->validate()",
"#1/Users/robertjoseph/Documents/Development/Aglett/Uncompleted/WAPI/app/Http/Controllers/ProfileController.php(76): App\Http\Controllers\Controller->validate(Object(Dingo\Api\Http\Request), Array)",
"#2 /Users/robertjoseph/Documents/Development/Aglett/Uncompleted/WAPI/app/Http/Controllers/ProfileController.php(44): App\Http\Controllers\ProfileController->validateRequest(Object(Dingo\Api\Http\Request))",
            "#3 [internal function]: App\Http\Controllers\ProfileController->store(Object(Dingo\Api\Http\Request))",
            "#4 /Users/robertjoseph/Documents/Development/Aglett/Uncompleted/WAPI/vendor/laravel/framework/src/Illuminate/Routing/Controller.php(54): call_user_func_array(Array, Array)",
            "#5 /Users/robertjoseph/Documents/Development/Aglett/Uncompleted/WAPI/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php(45): Illuminate\Routing\Controller->callAction('store', Array)",

Я был бы искренне признателен за любую помощь.Заранее спасибо

Ответы [ 2 ]

0 голосов
/ 11 декабря 2018

У меня такая же проблема с Dingo Api .И проблема возникла из класса FormRequest .См. эту ссылку.

может быть ваш API также имеет другой класс FormRequest для обработки запроса.

Согласно Dingo API.

используйте Dingo \ Api \ Http \ FormRequest;

Вместо

используйте Illuminate \ Foundation \ Http \ FormRequest;

0 голосов
/ 24 мая 2018

Используйте , запятую вместо | здесь, труба означает новую проверку, а не опции

   'gender'=>'required|in:female,male,none',

Проверка в документах: in: foo, bar, ...

...