当方環境はCentOS 6.8, PHP 5.6.22, Laravel 5.2.31, Postgresql 9.5.3 です。
今回、簡単な編集フォームのバリデーションチェックを実装しようとしております。
その際、重複する値は登録が不可能なようにしたく、次のように記述しました。
'test' => 'required|string|unique:db_test,test' // 入力必須、文字列型であり、DBのdb_testテーブルのtestカラムに同じ値が含まれていない時に通す
重複する値の登録拒否は上のやり方で確かにOKなのですが、ここで問題が。。
データを更新する際testの値は変更せずに登録しようとすると、DBに既にデータがあって重複するために登録ができません。
そこで、以下のようなことをしたのですが、良い方法はございますでしょうか?
・testの値を新規登録する際、DBに同じ値がなければ登録、あれば拒否
・testの値を更新する際、DBに同じ値がなければ更新、あれば拒否
・ただし、同じ値の維持は許可する
例:
/1/edit から test の値を A -> A に変更 => OK
/2/edit から test の値を B -> A に変更 => NG
/2/edit から test の値を B -> B に変更 => OK
回答お待ちしております。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/07/22 06:14 編集
2016/07/22 12:55
2016/07/22 12:57
2016/07/28 12:37 編集