Я создал модель сообщения, и я хочу создать сообщение с формой. Но если я отправить форму, что дает мне эту ошибку:Почему ограничение внешнего ключа не удается?
SQLSTATE[23000]: Integrity constraint violation: 1452 Cannot add or update a child row: a foreign key constraint fails (`internetstuffer`.`posts`, CONSTRAINT `posts_user_id_foreign` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)) (SQL: insert into `posts` (`title`, `text`, `category_id`, `updated_at`, `created_at`) values (vsvsvdv, sdsdfsdf, 1, 2016-07-26 12:13:34, 2016-07-26 12:13:34))
Я не знаю, что я делаю неправильно, потому что я создал функцию, которая устанавливает user_id.
Вот мой setUser_id() из моей модели Post:
public function setUser_id() {
$this->attributes['user_id'] = Auth::user()->getId();
}
Вот мой HomeController.php:
public function postForum(Request $request) {
$post = Post::create($request->only(['title', 'text', 'category_id']));
$post->setUser_id();
$post->save();
return back();
}
А вот моя форма:
<form method="post">
<input type="hidden" name="_token" value="{{ csrf_token() }}">
<input type="text" name="title" placeholder="Title"> <br> <br>
<input type="text" name="text" placeholder="text"> <br> <br>
<select name="category_id">
@foreach($categories as $category)
<option value="{{ $category->getId() }}">{{ $category->getName() }}</option>
@endforeach
</select> <br> <br>
<input type="submit" value="Post">
</form>
Ваше сообщение требует user_id на вставке. Ограничение не выполняется, вероятно, в функции '$ post-> setUser_id()', потому что оно не отображается на вставке. – acupajoe