【问题标题】:"SQLSTATE[HY000]: General error: 1366 Incorrect integer value: 'Select Employee Type' for column 'employee_type_id' at row 1 in Laravel“SQLSTATE [HY000]:一般错误:1366 整数值不正确:Laravel 中第 1 行的列 'employee_type_id' 的“选择员工类型”
【发布时间】:2020-08-15 23:51:32
【问题描述】:

在我的 Laravel-5.8 中,我有以下代码:

型号

protected $fillable = [
              'id',
              'first_name',
              'employee_type_id',
              'last_name',

          ];

  public function employeetype()
  {
     return $this->belongsTo('App\Models\Hr\HrEmployeeType','employee_type_id','id');
  }

控制器

public function update(UpdateEmployeeRequest $request, $id)
{        
    if (! Gate::allows('employee_edit')) {
        return abort(401);
    }
    DB::beginTransaction(); 
    try {       
    
        $employee = HrEmployee::find($id);    

               $employee->employee_type_id             = $request->employee_type_id;
            $employee->first_name                   = $request->first_name;
            $employee->last_name                    = $request->last_name;
            }  
           
            $employee->save();
            
    DB::commit(); 
        
    Session::flash('success', 'Employee is updated successfully');
    return redirect()->route('hr.employees.index');
    } catch (Exception $exception) {
        Log::error($exception);
        DB::rollback();
        Session::flash('error', 'Action failed! Please try again');
        return back();

        }        
  }

查看

   <form  action="{{route('hr.employees.update', ['id'=>$employee->id])}}" method="post" class="tab-wizard wizard-circle form" enctype="multipart/form-data">
    {{ csrf_field() }}
          <div class="col-12 col-sm-4">
            <div class="form-group">
              <label class="control-label"> Other Name:</label>
              <input  type="text" name="other_name" placeholder="Enter other name here" class="form-control" value="{{old('other_name',$employee->other_name)}}" style="width: 100%;">
            </div>
            <!-- /.form-group -->
          </div>
          <!-- /.col -->
          <div class="col-12 col-sm-4">
            <div class="form-group">
                <label class="control-label"> Last Name:<span style="color:red;">*</span></label>
              <input  type="text" name="last_name" placeholder="Enter last name here" class="form-control" value="{{old('last_name',$employee->last_name)}}" style="width: 100%;">
            </div>
            <!-- /.form-group -->
          </div>

          <div class="col-12 col-sm-4">
            <div class="form-group">
              <label class="control-label"> Employee Type:</label>
              <select class="form-control select2bs4" data-placeholder="Choose Employee Type" tabindex="1" name="employee_type_id" style="width: 100%;">
                <option value="">Select Employee Type</option>
                 <option selected >Select Employee Type</option>
                   @if($employeetypes->count() > 0 )
                     @foreach($employeetypes as $employeetype)
                       <option value="{{$employeetype->id}}" @if($employeetype->id == $employee->employee_type_id) selected @endif>{{$employeetype->employee_type_name}}</option>
                     @endforeach
                   @endif
              </select>
            </div>
            <!-- /.form-group -->
          </div>

  <button type="submit" id="button" class="btn btn-primary" hidden>{{ trans('global.update') }}</button>
   

当我提交编辑/更新表单时,我收到了这个错误:

"SQLSTATE[HY000]: 一般错误: 1366 不正确的整数值: 'Select Employee Type' for column 'employee_type_id' at row 1 (SQL: update hr_employees set first_name = Jacob, last_name = Brown where id = 1) ◀"

我该如何解决。

谢谢

【问题讨论】:

    标签: laravel


    【解决方案1】:

    根据需要设置您的选择字段,并为默认消息提供空值:

    <select class="form-control select2bs4" data-placeholder="Choose Employee Type" tabindex="1" name="employee_type_id" style="width: 100%;" required>
       <option value="">Select Employee Type</option>
          @if($employeetypes->count() > 0 )
             @foreach($employeetypes as $employeetype)
                <option value="{{$employeetype->id}}" @if($employeetype->id == $employee->employee_type_id) selected @endif>{{$employeetype->employee_type_name}}</option>
              @endforeach
          @endif
    </select>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多