无法在laravel 5.1中将值插入数据库

时间:2016-01-24 06:23:26

标签: laravel laravel-5.1

我有这个问题,当我从表单输入中返回所有值时,它返回所有已填充的值。但是当我在控制器中的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'
];

1 个答案:

答案 0 :(得分:1)

通过它的声音,您还没有更新注册模型的$fillable属性。

因此,您遇到质量分配问题,只插入默认情况下可填写的值,ID和时间戳,其余部分将被忽略。

您需要添加到$fillable属性中,以便将您希望通过批量分配填写的其他字段包含在内(例如,当您运行Enrollment::create([$request->all()]);时)。

它应该如下所示:

protected $fillable = ['student_id', 'subject_description', 'subject_code', 'schedule', 'room_no', 'no_of_units', 'section'];