Emailアドレスなど重複がないようなデータをupdateで保存すると
xxxxが存在しています
というエラーが出て、保存ができない。
編集する前の元データとこれから保存するデータが同じものなので、バリデーションで「重複」とみなされて、弾かれてしまう。
そんな時はこのようにするとOK
public function m_update($id,Request $request){ $attribute = request()->validate([ 'カラム名' => ['nullable','max:100','min:3',Rule::unique('テーブル名')->ignore($id)],//元データは無視するように ]); モデル名::where('id', $id)->update($attribute); return back()->with('success', '編集完了しました'); }
このように、元のカラムのidを取り込み、そのidを無視するようにする。
このバリデーションを説明すると、
「nullでもええよ、でも何か入れるとすると3〜100文字までな。しかも重複しないユニークなデータで。まあ、現在のデータはそのままでOKやで(無視するわ)」