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字段'标题'没有 默认值(SQL:插入
statuses
(weight
,color
,suspension
)值(-9,#FFD700,0))
所以这不是$fillable
的问题!
我有翻译包Laravel Translatable。就在从Status
模型停止使用时,它可以保存得很好!
然而我有另一个模型以相同的方式使用相同的包,但它可以成功保存新记录!
我无法弄清楚这个问题的根本原因。
到目前为止唯一可行的解决方案是在MySQL配置中设置'strict' => false,
。但是,我仍然无法理解发生了什么?!
答案 0 :(得分:0)
您是否注意到您使用了$status->title = request('title');
这样的内容,因此请将其更改为$status->title = $request->title;