Очень странное поведение с save()
, Я не использую метод create
, Это создающий новый код записи:
public function store(Request $request)
{
$this->validate($request,[
'title' => 'required',
'weight' => 'required|integer|max:99,min:-99',
'color' => 'required|regex:/^#[0-9A-F]{6}$/',
'suspension' => 'required|integer|in:0,1'
]);
$status = new Status();
$status->weight = $request->weight;
$status->title = request('title');
// dd($request->title);
$status->color = $request->color;
$status->suspension = $request->suspension;
$status->description = $request->description;
$status->save();
$request->session()->flash('status','success');
$request->session()->flash('msg',__('Status has benn created Successfully'));
return redirect('/status');
}
Тем не менее, я получил следующее сообщение о title
поле:
SQLSTATE [HY000]: общая ошибка: 1364 Поле ‘title’ не имеет
значение по умолчанию (SQL: вставить вstatuses
(weight
,color
,
suspension
) значения (-9, # FFD700, 0))
Так что это не проблема $fillable
!
У меня есть пакет перевода Laravel Transurable. Просто когда перестанешь его использовать от Status
модель, отлично экономит!
тем не мение У меня есть другая модель, которая использует тот же пакет тем же способом, но она может успешно сохранять новые записи!
Я не смог выяснить причину этой проблемы.
Единственное рабочее решение до сих пор, это установить 'strict' => false,
в конфигурации MySQL. Однако я до сих пор не могу понять, что происходит ?!
Вы заметили, что вы использовали, как это $status->title = request('title');
так что поменяй $status->title = $request->title;
Других решений пока нет …