2016-11-11 11 views
0

私はlaravelを学ぼうとしています。 私は働いているフォームがあります。私は作成することができ、私はデータを更新することができます。Laravelの一意の名前ですが、idが同じ場合

しかし、私は特別な場合があります。私は名前を付けてデータを追加しています。 この名前は一度だけ使用します。したがって、私はユニークな機能を使用しています。 これは、新しいものを作成しているときにうまくいきます。しかし、私はデータを更新し、私は名前を変更しないでください、それは名前が存在する(しかし、同じエントリ)ので、私にエラーが発生します。

だから、私は名前が取られているかどうかを確認したいと思いますが、idが同じであれば更新できるようにします。

どうすればlaravelでこれを行うことができますか?

答えて

3

ドキュメントに記載されているように、Illuminate\Validation\Ruleクラスを使用すると、他のルールと組み合わせて使用​​するルールオブジェクトを作成できます。 "与えられたIDを無視するユニークなルールの強制"

use Illuminate\Validation\Rule; 

Validator::make($data, [ 
    'email' => [ 
     'required', 
     Rule::unique('users')->ignore($user->id), 
    ], 
]); 

参照:

https://laravel.com/docs/master/validation#rule-unique

Ruleオブジェクトは ignore()メソッドを持っています
関連する問題