为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel 在字段验证后插入记录

Laravel 在字段验证后插入记录

PHP
阿波罗的战车 2022-07-22 16:35:04
我正在尝试 Laravel 5.6 请求验证。我面临几个问题1.无法查看视图中的验证消息。2.添加验证码数据后不插入数据库。(添加验证之前它的工作)3 如何验证下拉状态?(应选择 Active/Inactive)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>指定控制器.phppublic 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 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

尝试以下代码


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>


查看完整回答
反对 回复 2022-07-22
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

     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>


查看完整回答
反对 回复 2022-07-22
?
慕森卡

TA贡献1806条经验 获得超8个赞

参考此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);

完整代码


designation.blade.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>

指定控制器.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');

}

谢谢你们花费宝贵的时间来帮助我....!!!


查看完整回答
反对 回复 2022-07-22
  • 3 回答
  • 0 关注
  • 125 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号