SQLSTATE [23000]: Нарушение ограничения целостности: 1048 Столбец 'matricule_per' не может быть пустым - PullRequest
1 голос
/ 05 марта 2020

Я получаю следующую ошибку:

SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'matricule_per' cannot be null (SQL: insert into `permissions` (`matricule_per`, `date_rentree`, `nbr_jour`, `nbr_jour_reste`, `updated_at`, `created_at`) values (?, ?, ?, ?, 2020-03-05 19:56:59, 2020-03-05 19:56:59))

Это моя форма:

<div class="form-group row">
    <label class="col-form-label col-md-4">Matricule :</label>
    <div class="col-md-8">
        <select name="matricule_per" class="form-control">
            @foreach ($personnes as $p)
                <option value="{{$p->id}}">{{$p->mle}}</option>
            @endforeach
        </select>
    </div>
</div>

Это PermissionController:

public function insertPer(Request $request)
    {
      $perm = new Permission();

      $perm->matricule_per = $request->input('matricule_per');
      $perm->date_rentree = $request->input('date_rentree');
      $perm->nbr_jour = $request->input('nbr_jour');
      $perm->nbr_jour_reste = $request->input('nbr_jour_reste');

      $perm->save();

      return redirect('permission');

    }

    public function indexP()
    {
      $personnes = DB::table('personnes')->select('id','mle')->get();

      return view('frontend.Permission', compact('personnes'));
    }

Ответы [ 2 ]

1 голос
/ 05 марта 2020

В вашей модели добавьте это на $ fillable, как и другие

 protected $fillable = ['matricule_per'];


или просто добавьте

 protected $guared = [];

Для получения подробной информации просто проверьте это https://laravel.com/docs/5.7/eloquent#mass -присвоение

Если вы не хотите заполнять это или иногда оно может обнуляться, вы должны сделать его обнуляемым в вашем файле миграции

$table->string('matricule_per')->nullale(); 

Вы должны написать это, добавив новую миграцию или то же самое миграция. Если вы измените предыдущую миграцию, вы должны дать

php artisan migrate:refresh

, если добавите новую миграцию просто

php artisan migrate
1 голос
/ 05 марта 2020

Вы должны добавить matricule_per к $fillable свойству в вашей модели

namespace App;

use Illuminate\Database\Eloquent\Model;

class Permission extends Model
{
    /**
     * The attributes that are mass assignable.
     *
     * @var array
     */
    protected $fillable = [...,'matricule_per'];
}

Или

Вы можете разрешить (по умолчанию) значения NULL для вставки в matricule_per столбец.

Например

Schema::table('permissions', function (Blueprint $table) {
    //...
    $table->string('matricule_per')->nullable();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...