Я получаю следующую ошибку: SQLSTATE [23000]: нарушение ограничения целостности: 1048 Столбец 'user_id' не может быть пустым (SQL: вставить в answers
(body
, user_id
, question_id
, updated_at
, created_at
)
Я пытаюсь отправить ответ на форму, используя Laravel, и я получаю вышеуказанную ошибку. Сначала я проверил свою схему в таблице ответов и правильно определил user_id:
public function up()
{
Schema::create('answers', function (Blueprint $table) {
$table->bigIncrements('id');
$table->unsignedInteger('question_id');
$table->unsignedInteger('user_id');
$table->text('body');
$table->integer('votes_count')->default(0);
$table->timestamps();
});
}
Затем я добавил этот код в свой файл ansersController.php, чтобы проверить его и перенаправить после отправки ответа:
public function store(Question $question, Request $request)
{
$request->validate([
'body' => 'required'
]);
$question->answers()->create(['body' => $request->body, 'user_id' => \Auth::id()]);
return back()->with('success', "Your answer has been submitted successfully");
}
Я импортировал класс Answer в свой AnswerSontroller.php, а также преобразовал поля body и user_id в fillable в модели Answer.php:
protected $fillable = ['body', 'user_id'];
Когда я нажимаю кнопку отправки в моей форме, я получаю ошибку состояния SQL, показанную выше. user_id - допустимое поле в моей таблице ответов БД. Я не могу понять это.