Сеялка для одной из моих таблиц не работает с
Illuminate\Database\QueryException : SQLSTATE[HY000]: Общая ошибка: 1364 Идентификатор поля не имеет значения по умолчанию (SQL: вставить в
tests
(name
,description
,panel_id
,units
,minValue
,lowNote
,maxValue
,highNote
,note_id
) значения (отношение A/G, отношение альбумина к глобулину, 2, , 1,2, , 2,5, , 1))
Заметили, что поле id
пропущено?
Вот метод миграции up()
:
public function up()
{
Schema::create('tests', function (Blueprint $table) {
$table->unsignedBigInteger('id');
$table->string('name');
$table->string('description');
$table->unsignedBigInteger('panel_id');
$table->string('units');
$table->string('minValue');
$table->string('lowNote',512);
$table->string('maxValue');
$table->string('highNote',512);
$table->unsignedBigInteger('note_id');
});
}
Вот часть метода TestSeeder::run()
:
$tests = [
[
'id' => 1,
'name' => 'A/G Ratio',
'description' => 'Albumin to Globulin Ratio',
'panel_id' => 2,
'units' => '',
'minValue' => '1.2',
'lowNote' => '',
'maxValue' => '2.5',
'highNote' => '',
'note_id' => 1
],
];
Вот модель Test
:
class Test extends Model
{
public $timestamps = false;
protected $fillable = [
'id',
'name',
'description',
'panel_id',
'units',
'minValue',
'lowNote',
'maxValue',
'high_note',
'note_id'
];
}
Обратите внимание, что поле id
указано в массиве $fillable
, так почему же оно пропускается?
$table->bigIncrements('id');
, если это применимо. - person Tpojka   schedule 30.03.2020