gpt4 book ai didi

mysql - SQLSTATE[23000] : Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails - laravel

转载 作者:行者123 更新时间:2023-11-29 21:00:56 24 4
gpt4 key购买 nike

我有 3 张 table 。1. 主题2.老师3.类(class)

我的类(class)表迁移在这里。

public function up()
{
Schema::create('courses', function(Blueprint $table) {
$table->increments('c_id');
$table->integer('sub_id1')->unsigned()->nullable();
$table->integer('t_id1')->unsigned()->nullable();
$table->integer('sub_id2')->unsigned()->nullable();
$table->integer('t_id2')->unsigned()->nullable();
$table->integer('sub_id3')->unsigned()->nullable();
$table->integer('t_id3')->unsigned()->nullable();
$table->integer('sub_id4')->unsigned()->nullable();
$table->integer('t_id4')->unsigned()->nullable();
$table->integer('sub_id5')->unsigned()->nullable();
$table->integer('t_id5')->unsigned()->nullable();
$table->integer('sub_id6')->unsigned()->nullable();
$table->integer('t_id6')->unsigned()->nullable();
$table->integer('sub_id7')->unsigned()->nullable();
$table->integer('t_id7')->unsigned()->nullable();
$table->integer('sub_id8')->unsigned()->nullable();
$table->integer('t_id8')->unsigned()->nullable();
$table->integer('sub_id9')->unsigned()->nullable();
$table->integer('t_id9')->unsigned()->nullable();
$table->integer('sub_id10')->unsigned()->nullable();
$table->integer('t_id10')->unsigned()->nullable();
$table->integer('sub_id11')->unsigned()->nullable();
$table->integer('t_id11')->unsigned()->nullable();
$table->integer('sub_id12')->unsigned()->nullable();
$table->integer('t_id12')->unsigned()->nullable();
$table->integer('sub_id13')->unsigned()->nullable();
$table->integer('t_id13')->unsigned()->nullable();
$table->integer('sub_id14')->unsigned()->nullable();
$table->integer('t_id14')->unsigned()->nullable();
});
}

public function down()
{
Schema::drop('courses');
}

现在我正在尝试插入类(class)表。如果我将某些值保留为 null(例如 sub_id5 到 sub_id14 & t_id5 到 t_id14),则会发生错误。尽管当我从 xampp/phpmyadmin 执行相同的操作时,它没有显示任何问题。在更新和删除的情况下,类(class)表上的约束设置为不执行任何操作。我正在使用“Collective\Html\FormFacade”来获取输入。这是表单代码。

{!! Form::open(array('route' => 'course.store', 'method' => 'POST')) !!}
<ul>
<li>
{!! Form::label('sub_id1', 'Sub_id1:') !!}
{!! Form::number('sub_id1') !!}
</li>
<li>
{!! Form::label('t_id1', 'T_id1:') !!}
{!! Form::number('t_id1') !!}
</li>
<li>
{!! Form::label('sub_id2', 'Sub_id2:') !!}
{!! Form::number('sub_id2',NULL) !!}
</li>
<li>
{!! Form::label('t_id2', 'T_id2:') !!}
{!! Form::number('t_id2',NULL) !!}
</li>
<li>
{!! Form::label('sub_id3', 'Sub_id3:') !!}
{!! Form::number('sub_id3',NULL) !!}
</li>
<li>
{!! Form::label('t_id3', 'T_id3:') !!}
{!! Form::number('t_id3',NULL) !!}
</li>
<li>
{!! Form::label('sub_id4', 'Sub_id4:') !!}
{!! Form::number('sub_id4',NULL) !!}
</li>
<li>
{!! Form::label('t_id4', 'T_id4:') !!}
{!! Form::number('t_id4',NULL) !!}
</li>
<li>
{!! Form::label('sub_id5', 'Sub_id5:') !!}
{!! Form::number('sub_id5',NULL) !!}
</li>
<li>
{!! Form::label('t_id5', 'T_id5:') !!}
{!! Form::number('t_id5',NULL) !!}
</li>
<li>
{!! Form::label('sub_id6', 'Sub_id6:') !!}
{!! Form::number('sub_id6',NULL) !!}
</li>
<li>
{!! Form::label('t_id6', 'T_id6:') !!}
{!! Form::number('t_id6',NULL) !!}
</li>
<li>
{!! Form::label('sub_id7', 'Sub_id7:') !!}
{!! Form::number('sub_id7',NULL) !!}
</li>
<li>
{!! Form::label('t_id7', 'T_id7:') !!}
{!! Form::number('t_id7',NULL) !!}
</li>
<li>
{!! Form::label('sub_id8', 'Sub_id8:') !!}
{!! Form::number('sub_id8',NULL) !!}
</li>
<li>
{!! Form::label('t_id8', 'T_id8:') !!}
{!! Form::number('t_id8',NULL) !!}
</li>
<li>
{!! Form::label('sub_id9', 'Sub_id9:') !!}
{!! Form::number('sub_id9',NULL) !!}
</li>
<li>
{!! Form::label('t_id9', 'T_id9:') !!}
{!! Form::number('t_id9',NULL) !!}
</li>
<li>
{!! Form::label('sub_id10', 'Sub_id10:') !!}
{!! Form::number('sub_id10',NULL) !!}
</li>
<li>
{!! Form::label('t_id10', 'T_id10:') !!}
{!! Form::number('t_id10',NULL) !!}
</li>
<li>
{!! Form::label('sub_id11', 'Sub_id11:') !!}
{!! Form::number('sub_id11',NULL) !!}
</li>
<li>
{!! Form::label('t_id11', 'T_id11:') !!}
{!! Form::number('t_id11',NULL) !!}
</li>
<li>
{!! Form::label('sub_id12', 'Sub_id12:') !!}
{!! Form::number('sub_id12',NULL) !!}
</li>
<li>
{!! Form::label('t_id12', 'T_id12:') !!}
{!! Form::number('t_id12',NULL) !!}
</li>
<li>
{!! Form::label('sub_id13', 'Sub_id13:') !!}
{!! Form::number('sub_id13',NULL) !!}
</li>
<li>
{!! Form::label('t_id13', 'T_id13:') !!}
{!! Form::number('t_id13',NULL) !!}
</li>
<li>
{!! Form::label('sub_id14', 'Sub_id14:') !!}
{!! Form::number('sub_id14',NULL) !!}
</li>
<li>
{!! Form::label('t_id14', 'T_id14:') !!}
{!! Form::number('t_id14',NULL) !!}
</li>
<li>
{!! Form::submit() !!}
</li>
</ul>
{!! Form::close() !!}

所以这意味着如果我没有在任何输入字段中输入任何值,它应该默认发送 NULL。进一步检查我发现它没有发送 NULL,而是发送 ''。

这就是我发现的。

at Connection->runQueryCallback('insert into `courses` (`sub_id1`, `sub_id2`, `sub_id3`, `sub_id4`, `sub_id5`, `sub_id6`, `sub_id7`, `sub_id8`, `sub_id9`, `sub_id10`, `sub_id11`, `sub_id12`, `sub_id13`, `sub_id14`, `t_id1`, `t_id2`, `t_id3`, `t_id4`, `t_id5`, `t_id6`, `t_id7`, `t_id8`, `t_id9`, `t_id10`, `t_id11`, `t_id12`, `t_id13`, `t_id14`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)', array('1', '1', '2', '', '', '', '', '', '', '', '', '', '', '', '1', '1', '2', '', '', '', '', '', '', '', '', '', '', ''), object(Closure)) in Connection.php line 629

任何人都可以帮忙吗?提前致谢

最佳答案

从表面上看,您正在使用 $model->fill($yourInput)。

提交表单时,您应该过滤提交数据并且不要包含空字段。您可以通过过滤数组来做到这一点,例如:

$model->fill(array_filter(\Input::all(), function($var) {
return $var !== '';
});

关于mysql - SQLSTATE[23000] : Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails - laravel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37238754/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com