422 (Unprocessable Entity) ошибка при отправке формы с laravel и vue js - PullRequest
0 голосов
/ 08 марта 2020

после проверки моих входных данных я хочу отправить форму, но ошибка 422 (Unprocessable Entity) показывает, что я пробую много способов проверки с помощью laravel, но эта же ошибка показывает !!! Я не понимаю, почему, даже если ввести правильные данные, он отвечает с 422 ответом и абсолютно без сообщений об ошибках. Может ли кто-нибудь помочь мне нормализовать поведение валидации? это моя форма в Project. vue:

 <form @submit.prevent=" x ? modifier():ajouterProjet()">
      <div class="modal-body">
      <div class="form-group">
  <label>Nom</label>
  <input v-model="form.name" type="text" name="name"
    class="form-control" :class="{ 'is-invalid': form.errors.has('name') }">
  <has-error :form="form" field="name"></has-error>
</div>
 <div class="form-group">
  <label>Client</label>

  <select v-model="form.client_id"   type="text" name="client_id"
    class="form-control" :class="{ 'is-invalid': form.errors.has('client_id') } "   >
    <option value="" selected>Selectez Le Client</option>
    <option v-for = "(client , index) in clients" :key="index" v-bind:value="client.id">{{ client.name }}</option>
  </select>
  <has-error :form="form" field="client_id"></has-error>
</div>
<div>
    <div class="form-group">
  <label>Chef de Projet</label>
  <select v-model="form.chefprojet" type="text" name="chefprojet"
    class="form-control" :class="{ 'is-invalid': form.errors.has('chefprojet') }">
    <option selected value="">Selecter Un Chef de projet</option>
     <option v-for = "(chef , index) in chefs" :key="index" v-bind:value="chef.id">{{ chef.name }}</option>

  </select>
  <has-error :form="form" field="chefprojet"></has-error>

</div>
            <label>Membres</label>
            <select   v-model="form.membre_id" type="text" name="membre_id[]" class="form-control" :class="{ 'is-invalid': form.errors.has('membre_id') } " multiple="multiple">
              <option value>Selectez Les membres</option>
              <option v-for="(membre , index) in membres" :key="index" v-bind:value="membre.id">
                    {{ membre.name }}
              </option>
            </select>
            <has-error :form="form" field="membre_id"></has-error>
 </div>

 <div class="form-group" >
  <label>Duree</label>
  <input v-model="form.durre" type="text" name="durre"
    class="form-control" :class="{ 'is-invalid': form.errors.has('durre') } ">
  <has-error :form="form" field="durre"></has-error>
</div>

 <div class="form-group">
  <label>Description</label>
  <textarea v-model="form.description" type="text" name="description"
    class="form-control" :class="{ 'is-invalid': form.errors.has('description') }"></textarea>
  <has-error :form="form" field="description"></has-error>
</div>
 <div class="form-group">
  <label>Budget</label>
  <input v-model="form.budget" type="text" name="budget"
    class="form-control" :class="{ 'is-invalid': form.errors.has('budget') }">
    <has-error :form="form" field="budget"></has-error>
</div>
  </div>
  <div class="modal-footer">
    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
    <button type="submit" v-show="!x" class="btn btn-primary" >Ajouter</button>
    <button type="submit" v-show="x" class="btn btn-primary" >Modifier</button>
  </div>
  </form>

, и этот сценарий принадлежит Project. vue:

   form : new Form({
       id:'',
       name:'',
       durre:'',
       description:'',
       budget:'',
       owner:'',
       membres: "",
    client_id:"",
    membre_id: [],
    chefprojet:''


   }),
 methods:{
           ajouterProjet(){
            this.form.post("api/projet")
    .then(()=>this.form.post('api/chefdeprojet').then(()=>this.form.post('api/userprojet').then(()=>{
            fire.$emit('ajoutprojet');
            this.form.reset();
            $("#AjouterProjet").modal('hide');
            Toast.fire({
                    icon: 'success',
                    title: 'Projet Ajouter'

            })

            }).catch(()=>{
             })).then(()=>{axios.post('/api/clientpname')
                  }))
                  ;


                },

и это моя функция контроллера:

  public function store(Request $request)
{
    //

$this->validate($request,[
        'name' => 'required|string|max:50',
        'durre' =>  'required|string|max:50',
        'description'=>'required|string|max:255',
        'client_id' => 'required',
        'budget' => 'required',
        'password' => 'required|string|min:6',
        'membre_id'=>'required',
        'chefprojet'=>'required'
      ]);

      $data = $request->all();
        $client = Client::where('id', $data['client_id'])->first();
       $projet =new Projet;
        $projet->name = $data['name'];
        $projet->durre = $data['durre'];
        $projet->description = $data['description'];
        $projet->client_id = $data['client_id'];
        $projet->owner = $client->name;
        $projet->budget = $data['budget'];
         $projet->save();

        }

и это маршрут:

      Route::apiResource('projet' ,'API\ProjetController');
...