Прежде всего, проблема в том, что вы не установили значение по умолчанию для Category_id в вашей таблице.
Если вы уверены, что ваш запрос имеет Category_id поле, пожалуйста, убедитесь, что вы пропустили все обязательные поля при вставке новой записи.
Позвольте мне привести вам пример того, как это сделать с вашим делом (блоки кода ниже должны быть где-то в вашем контроллер ).Также я дам вам мой любимый способ вставить новую запись.
Использование входных фасадов:
public function create(Request $request)
{
$user = new User;
$user->username = Input::get('role_id');
$user->name = Input::get('name');
$user->email = Input::get('email');
$user->password = Hash::make(Input::get('password'));
$user->Category_id = Input::get('Category_id');
$user->save();
return Redirect::back();
}
Это мой любимый способ сделать это:
public function create(Request $request)
{
$user = new User;
$data = $this->cleanUnfillableFields($request->all(), $user->getFillable());
$user->create($data);
return Redirect::back();
}
/**
* This removes/unsets fields that are not fillable from the model.
* This is the magic method where you should put in a separate class or a trait,
* so all controllers can share this method.
*
* @param array $data
* @param array $fillableFields
*
* @return array
*/
protected function cleanUnfillableFields(array $data, array $fillableFields): array
{
foreach ($data as $key => $value) {
if (! in_array($key, $fillableFields))
unset($data[$key]);
}
return $data;
}
При моем способе выше вам не нужно будет напрягаться, заполняя атрибут каждой модели и больше отфильтровывая ненужные поля, если вы правильно задаете заполняемые поля и у вас есть обязательные поля в вашем запросе.