Laravel Вставить запись после проверки поля - PullRequest
0 голосов
/ 16 января 2020

Я пытаюсь проверить запрос Laravel 5.6. У меня возникло несколько проблем

1.Не могу просматривать сообщения о проверке.

2.После добавления данных кода проверки не вставить в база данных. (перед добавлением проверки это работает)

3 Как я могу проверить статус раскрывающегося списка? (Должен выбрать Активный / Неактивный)

designation.blade. php

<form action="{{url('./designation/store')}}" method="POST">
      <div class="form-row">
        <div class="form-group col-md-7">
          <label for="inputDesignation">Designation</label>
          <input type="text" name="designation" class="form-control" id="inputDesignation">
        </div>
        <div class="form-group col-md-5">
          <label for="inputStatus_Designation">Status</label>
          <select name="status" id="inputStatus_Designation" class="form-control">
            <option selected>Select Status</option>
            <option >Active</option>
            <option >Inactive</option>
          </select>
        </div>
      </div>

      <button type="submit" class="btn btn-success" id="btn_add_designation">Add</button>
      {{ csrf_field() }}
  </form>

DesignationController. php

public function store(Request $request)
{
    //Validation the Data

    $validatedData = $request->validate([
        'designation_type' => ['required','max:255'],
        'status' => ['required'],
    ],
    [
        'designation_type.required' => 'Designation is required',
        'designation_type.max' => 'Designation should not be greater than 255 characters.',
    ]);

    //Data Insert into database
   $data =[
       'designation_type'=>$request->input('designation'),
       'status'=>$request->input('status')
   ];
   DB::table('designation')->insert($data);

   return redirect('/designation');
}

Пожалуйста, помогите мне решить эту проблему !!

Ответы [ 3 ]

0 голосов
/ 16 января 2020
     public function store(Request $request)
        {
            $this->validate($request,[
                'name' => 'required'
            ]);

            $category = new Category();
            $category->name = $request->name;
            $category->slug = str_slug($request->name);
            $category->save();
            Toastr::success('Category Successfully Saved','Success');
            return redirect()->route('admin.category.index');
        }


// blade 

<form method="POST" action="{{ route('admin.category.store') }}">
   @csrf
   <div class="form-group form-float">
     <div class="form-line">
     <input value="{{ old('name') }}" name="name" type="text" id="category_name" class="form-control">
     <label class="form-label">{{ __('Name') }}</label>
       </div>
        </div>
          <br>

         <a href="{{ route('admin.category.index') }}"  class="btn btn-danger m-t-15 waves-effect">{{ __('BACK') }}</a>
          <button type="submit" class="btn btn-primary m-t-15 waves-effect">{{ __('SUBMIT') }}</button>
</form>
0 голосов
/ 16 января 2020

После ссылки https://laravel.com/docs/5.6/validation#named -error-bags Я сделал несколько изменений в коде, и это помогает устранить ошибки.

В designation.blade. php добавлено

 @if ($errors->any())
<div class="alert alert-danger">
    <ul>
        @foreach ($errors->all() as $error)
            <h6>{{ $error }}</h6>
        @endforeach
    </ul>
</div>
@endif

В DesignationController. php

для проверки раскрывающегося состояния.

'status' => 'required|not_in:0',

для части базы данных вставки данных

DB::table('designation')->insert($validatedData);

Полный код

Обозначение. Клинок. php

<div class="row">
  <div class="col-md-2"></div>
    <div class="col-md-8">
      @if ($errors->any())
        <div class="alert alert-danger">
        <ul>
        @foreach ($errors->all() as $error)
            <h6>{{ $error }}</h6>
        @endforeach
    </ul>
</div>
@endif
</div>
 <div class="col-md-2"></div>
 </div>
 <div class="row">
<div class="col-md-4"></div>
<div class="col-md-4">
  <form action="{{url('./designation/store')}}" method="POST">
      <div class="form-row">
        <div class="form-group col-md-7">
          <label for="inputDesignation">Designation</label>
          <input type="text" name="designation_type" class="form-control" id="inputDesignation">
        </div>
        <div class="form-group col-md-5">
          <label for="inputStatus_Designation">Status</label>
          <select name="status" id="inputStatus_Designation" class="form-control">
            <option selected value="">Select Status</option>
            <option value="Active">Active</option>
            <option value="Inactive">Inactive</option>
          </select>
        </div>
      </div>
      {{-- <button type="submit" class="btn btn-primary">Sign in</button> --}}
      <button type="submit" class="btn btn-success" id="btn_add_designation">Add</button>
      {{ csrf_field() }}


  </form>
</div>
 <div class="col-md-4"></div>
</div>

DesignationController. php

public function store(Request $request)
{
    $validatedData = $request->validate([
        'designation_type' => 'required|max:255',
        'status' => 'required|not_in:0',
    ],
    [
        'designation_type.required' => 'Designation is required !!',
        'designation_type.max' => 'Designation should not be greater than 255 characters.',
        'status.required' => 'Status is required !!'
    ]);

    DB::table('designation')->insert($validatedData);
    return redirect('/designation');
}

Спасибо, ребята, вы тратите свое драгоценное время, чтобы помочь мне .... !!!

0 голосов
/ 16 января 2020

попробуйте следующий код

public function store(Request $request)
{
    //Validation the Data

    $validatedData = $request->validate([
        'designation_type' => ['required','max:255'],
        'status' => ['required'],
    ],
    [
        'designation_type.required' => 'Designation is required',
        'designation_type.max' => 'Designation should not be greater than 255 characters.',
    ]);


    if($validatedData->fails()) {
      return Redirect::back()->withErrors($validatedData);
    }


    //Data Insert into database
   $data =[
       'designation_type'=>$request->input('designation'),
       'status'=>$request->input('status')
   ];
   DB::table('designation')->insert($data);

   return redirect('/designation');
}




<form action="{{url('./designation/store')}}" method="POST">
      <div class="form-row">
        <div class="form-group col-md-7">
          <label for="inputDesignation">Designation</label>
          <input type="text" name="designation" class="form-control" id="inputDesignation">
          @if($errors->has('designation'))
            <div class="error">{{ $errors->first('designation') }}</div>
        @endif
        </div>
        <div class="form-group col-md-5">
          <label for="inputStatus_Designation">Status</label>
          <select name="status" id="inputStatus_Designation" class="form-control">
            <option selected>Select Status</option>
            <option >Active</option>
            <option >Inactive</option>
          </select>
          @if($errors->has('status'))
            <div class="error">{{ $errors->first('status') }}</div>
        @endif
        </div>
      </div>

      <button type="submit" class="btn btn-success" id="btn_add_designation">Add</button>
      {{ csrf_field() }}
  </form>
...