简体   繁体   中英

Laravel 5.8 Field 'name doesn't have a default value

Hello im developing a students CRUD in laravel but i have a problem saving the data in my db.

Here is the problem that laravel returns. SQLSTATE[HY000]: General error: 1364 Field 'name' doesn't have a default value

My store function.

public function store(Request $request)
    {
        $alumno = Alumno::create();
        $alumno->fill($request->all());
        $alumno->save();
        return redirect('/alumnos');
    }

My model:

class Alumno extends Model
{
    protected $fillable = ['name','apellido','matricula','correo'];
}

My form:

<form action="/alumnos" method="post">
    @csrf
    <fieldset class="form-fieldset">
        <div class="form-group">
            <label class="form-label">Nombre<span class="form-required">*</span></label>
            <input type="text" class="form-control" name="name" required/>
        </div>
        <div class="form-group">
            <label class="form-label">Apellido<span class="form-required">*</span></label>
            <input type="text" class="form-control" name="apellido" required/>
        </div>
        <div class="form-group">
            <label class="form-label">Matricula<span class="form-required">*</span></label>
            <input type="number" class="form-control" required name="matricula" />
        </div>
        <div class="form-group mb-0">
            <label class="form-label">Correo Electronico<span class="form-required">*</span></label>
            <input type="email" class="form-control" name="correo" required />
        </div>
    </fieldset>
    <input type="submit" class="btn btn-primary" value="Guardar" />
</form>

What im doing wrong? Please help and thank you!!! :)

您可以在表单操作中尝试此操作。

 <form action="{{action('YourController@store')}}" method="post">

You solve this problem in two different ways

  1. Your database structure has to be changed like below. Default field must be Null . Where description field is your database field.

Like below this

图片

  1. Open your model database/migrations/your_model then use like this code

    Schema::table('your_model', function (Blueprint $table) { $table->string('name')->nullable(); });

问题是从表单操作 URL 尝试将操作更改为{{ action('YourController@store') }}

You should save data as below:

public function store(Request $request)
    {
        $alumno = new Alumno();
        $alumno = $alumno->create($request->all());
        return redirect('/alumnos');
    }

and it will work fine.

You should add line to migration


$table->string('name')->nullable(); 

set form as above


 <form action="{{action('YourController@store')}}">

For insert all request inputs


Alumno::create($request->all());

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM