0

非常奇怪的行为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 Translatable。就在从模型中停止使用它时Status,它保存得很好!

但是我有另一个模型,它以相同的方式使用相同的包,但它可以成功保存新记录!

我无法找出这个问题的根本原因。

更新

到目前为止,唯一可行的解​​决方案是'strict' => false,在 MySQL 配置中进行设置。但是,我仍然无法理解发生了什么?!

4

1 回答 1

0

你有没有注意到你已经这样使用了,$status->title = request('title');所以把它改成$status->title = $request->title;

于 2017-10-14T07:43:59.357 回答