Laravelでのユニークバリデーションルールは、
例えばpersonsモデルのemailを例にとると、以下のようになりますね。
['email' => 'unique:persons']
更にupdate時は、
['email' => "unique:persons,email,$id"]
のようにidを指定して、このidは対象外とします。
※これをしないと更新対象データ自身も検索対象になってしまうので、
必ずユニーク違反になってしまいます。
Laravel4の場合は、
RESTful Resource Controllerであればupdateアクションの引数でidを取得できるので、
それをセットすれば問題はありません。
ところが、Laravel5のFormRequestのrulesメソッド内に記述する場合は
どうすればよいのか悩みました。
そこで色々調べた結果、現在はidを以下のように取得しています。
\Route::getCurrentRoute()->getParameter('persons')
※この'persons'はルーティングの{resouce}に当たる部分です。
もっと良い方法をご存知の方がいらっしゃいましたら、
是非教えていただけると嬉しいです。
ちなみにですが、複合フィールドにまたがるユニークバリデーションについて、
良いパッケージをみつけましたのでご紹介させていただきます。
felixkiss/uniquewith-validator
https://github.com/felixkiss/uniquewith-validator
[2015.03.09 追記]
上記パッケージですが、論理削除に対応していないようです。
何とも残念です…。