0

SQLSTATE[23000]:完整性约束违规:1048 列“专利”不能为空(SQL:插入carspatente、、、、、、、、 )值(? marca, ? modelo, ? color,?,?,fecha_ingreso2019-06-10 updated_at16:27 created_at:35, 2019-06-10 16:27:35)

Route::match(['get', 'post'], '/crear',[
    'uses'=>'CarController@crear',
    'as'=>'cars.crear' 
]);

形成的短代码

<div class="row">

        <div class="col-md-6"></div>

            <form action="{{route('cars.crear')}}" method="post">

               @csrf

               <div class="row form-group">

                    <div class="col-md-12">

                        <label for="true">Patente:</label>

                        <input type="text" name="patente" size="6" maxlength="6" class="form-control"  required>

                    </div>

                </div>

代码创建和显示

公共函数创建(请求 $request){

    $patente=$request['patente'];

    $marca=$request['marca'];

    $modelo=$request['modelo'];

    $color=$request['color'];

    $fecha_ingreso=$request['fecha_ingreso'];
   
    $car=new Car();

    $car->patente=$patente;

    $car->marca=$marca;

    $car->modelo=$modelo;

    $car->color=$color;

    $car->fecha_ingreso=$fecha_ingreso;

    $car->save();
   

    return redirect()->back();

}

public function show(){

    $cars=Car::all();

    return view ('lista',['cars'=>$cars]);

}
4

3 回答 3

0

汽车控制器.php

public function crear(Request $request){
    request()->validate([
        'patente' => 'required',
        'marca' => 'required',
        'modelo' => 'required',
        'color' => 'required',
        'fecha_ingreso' => 'required',
        'patente' => 'required',
        'marca' => 'required',
        'modelo' => 'required',
        'color' => 'required',
        'fecha_ingreso' => 'required'
    ]);

    $car = Car::create([
        patente => $request->patente,
        marca => $request->marca,
        modelo => $request->modelo,
        color => $request->color,
        fecha_ingreso => $request->fecha_ingreso
    ]);

    return redirect()->back();
}

您的代码看起来不错,有点冗长,所以我对其进行了一些清理并添加了验证。我能想到的唯一建议是确保您的Car模型将字段添加到protected $fillable数组中。

于 2019-06-10T17:25:20.917 回答
0

只需在存储之前验证您的数据,

php artisan make:request ClearRequest

在 App\Requests\ClearRequest 中,

class ClearRequest extends FormRequest
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'patente'=>'required',
            'marca'=>'required',
            'modelo'=>'required',
            'color'=>'required',
            'fecha_ingreso'=>'required',
            'patente'=>'required',
            'marca'=>'required',
            'modelo'=>'required',
            'color'=>'required',
            'fecha_ingreso'=>'required'

        ];
    }
}

在你的控制器中

use App\Http\Requests\ClearRequest;

用你清晰的方法

public function crear(ClearRequest $request){
...
}

在你的视图文件中是这样的,

<form action="/clear" method="POST">
@csrf
  patente<br>
  <input type="text" name="patente">
  <br>
  marca<br>
  <input type="text" name="marca">
  <br>
  modelo<br>
  <input type="text" name="modelo">
  <br>
  fecha_ingreso<br>
  <input type="text" name="fecha_ingreso">
  <br>
  patente<br>
  <input type="text" name="patente">
  <br>

  modelo<br>
  <input type="text" name="modelo">
  <br>
  color<br>
  <input type="text" name="color">
  <br>
  fecha_ingreso<br>
  <input type="text" name="fecha_ingreso">
  <br>
  <input type="submit" value="Submit">
</form> 

如果它对你有帮助,你点赞我:)

于 2019-06-10T17:11:42.083 回答
-1

您正在尝试在NOT NULL列中存储空值。确保您patente在请求中正确传递。

于 2019-06-10T17:26:56.623 回答