Внешний ключ Laravel 'student_id' не имеет значения по умолчанию, даже если он находится в запросе - PullRequest
0 голосов
/ 29 августа 2018

Migration:

Schema::create('students_detail', function (Blueprint $table) {
           $table->increments('id');
           $table->unsignedInteger('student_id');
           $table->integer('lessons')->nullable();
           $table->string('tests',200)->nullable();

           $table->timestamps();

           $table->foreign('student_id')->references('id')->on('students')

       });

Контроллер

public function update(Request $request, StudentsDetail $studentsDetail)
   {
       $student_id= $request->input('student_id');
       $studentsDetail->update($request->except('student_id'));
       $studentsDetail->save();


       return redirect()->back();
   }

Я попытался установить для mysql строгое значение false, это не помогло решить мою ошибку. ПРИМЕЧАНИЕ. Я не могу сделать столбец 'student_id' обнуляемым, поскольку он является внешним ключом, поэтому при обновлении появляется эта ошибка? Я не знаю, как от этого избавиться!

Ответы [ 2 ]

0 голосов
/ 29 августа 2018

Добавить student_id в файл модели, защищенный массивом $ fillable, например:

 protected $fillable = ['student_id'];

Сохранить код на контроллере:

$attributes = $request->all(); // print_r($request->all()) this request and check have you got student_id fields?
$studentsDetail->update($attributes);
return redirect()->back();
0 голосов
/ 29 августа 2018

Вы должны передать его методу обновления:

public function update(Request $request, StudentsDetail $studentsDetail)
{
    $studentsDetail->update($request->all());
    $studentsDetail->save();


    return redirect()->back();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...