Причина, по которой вы получаете эту ошибку, в том, что столбец user_id не имеет значения NULL. Для решения проблем убедитесь в следующем:
1) В Post Model добавьте следующую заполняемую строку:
protected $fillable = ['user_id', 'title', 'content'];
3) В вашем PostController. php, у вас должен быть следующий конструктор. Чтобы гарантировать, что единственный пользователь, прошедший аутентификацию, может создать сообщение.
public function __construct()
{
$this->middleware('auth');
}
2) Я предполагаю, что пользователь, отправляющий форму, является аутентифицированным пользователем в вашем приложении. Следовательно, в блэйд, где у вас есть ваша форма, добавьте следующую строку кода:
<input type="hidden" name="user_id" value="{{ Auth::user()->id }}">
В приведенном выше фрагменте кода мы передаем скрытое заполнение, которое содержит ваше значение user_id, полученное из Laravel Auth фасад.
Теперь, когда вы dd($request->all());
, вы сможете увидеть user_id в вашем массиве.
Примечание: при использовании массового назначения вам нужно добавить защищенный заполнитель на вашей модели и убедитесь, что имя, которое вы используете в вводе, заполнено, чтобы соответствовать точному имени в вашей модели. Подробнее о Laravel массовом назначении