我有这个问题,当我从表单输入中返回所有值时,它返回所有已填充的值。但是当我在控制器中的store方法下持久存储到数据库时,它会插入空值。谁可以帮我这个事?谢谢。以下是我的代码。
public function store(EnrollmentRequest $request)
{
return $request->all();
return redirect('/enrollment/create');
}
正如您在顶部看到的那样,它会返回所有输入。但是,当我将它保留在数据库上时,它只返回id和timestamps;
public function store(EnrollmentRequest $request)
{
$enrollment = Enrollment::create([$request->all()]);
return $enrollment; return redirect('/enrollment/create');
}
此处还有我的报名表:
Schema::create('enrollments', function (Blueprint $table) {
$table->increments('id');
$table->integer('student_id');
$table->string('subject_description');
$table->string('subject_code');
$table->time('schedule');
$table->string('room_no');
$table->integer('no_of_units');
$table->string('section');
$table->timestamps();
});
也是我的主题表:
Schema::create('subjects', function (Blueprint $table) {
$table->increments('id');
$table->string('subject_code');
$table->string('subject_description');
$table->time('schedule');
$table->string('room_no');
$table->integer('no_of_units');
$table->timestamps();
});
非常感谢您的帮助。
protected $table = 'enrollments';
protected $fillable = [
'subject_code',
'subject_description',
'section',
'schedule',
'room_no',
'no_of_units'
];
答案 0 :(得分:1)
通过它的声音,您还没有更新注册模型的$fillable
属性。
因此,您遇到质量分配问题,只插入默认情况下可填写的值,ID和时间戳,其余部分将被忽略。
您需要添加到$fillable
属性中,以便将您希望通过批量分配填写的其他字段包含在内(例如,当您运行Enrollment::create([$request->all()]);
时)。
它应该如下所示:
protected $fillable = ['student_id', 'subject_description', 'subject_code', 'schedule', 'room_no', 'no_of_units', 'section'];