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 フィールド 'タイトル' に既定値がありません (SQL: statuses( weight、、) 値 (-9、#FFD700、0)colorに 挿入)suspension

だからそれは問題ではありません$fillable

翻訳パッケージLaravel Translatableがあります。ちょうどStatusモデルから使うのをやめたときは、結構節約!

ただし、同じパッケージを同じ方法で使用する別のモデルがありますが、新しいレコードを正常に保存できます!

この問題の根本原因を突き止めることができませんでした。

アップデート

これまでの唯一の有効な解決策は'strict' => false,、MySQL 構成で設定することです。しかし、私はまだ何が起こっているのか理解できません?!

4

1 に答える 1