0

次の構造を持つモデルを検証しようとしています。

+------------+
| User       |
+------------+
| id         |
| username   |
| company_id |
+------------+

ユーザーが会社に所属できる場所。現在、次のルールを使用して、users テーブルでユーザー名が一意であることを検証しています。

'username' => ["unique:users"]

現在のユーザーを編集するとき、現在の行を無視したいので、次を使用します。

'username' => ["unique:users,username,10"]

そして、それは機能します。

ここで、ユーザー名が会社内で一意であることを検証したいと思います。

一部の行 (company_id = some-id) 内でフィールドが一意であることを検証するにはどうすればよいですか?

4

1 に答える 1

2

Laravel のドキュメントには記載されていませんが、where 句に変換される追加のパラメーターを追加することで実行できます。

以下は、あなたが要求したことを行います:

'username' => ["unique:users,username,10,id,company_id,31"]

これは、次のように SQL ステートメントに変換されます。

select 
  count(*) 
from 
  users 
where username   =  ?
  and id         <> 10
  and company_id =  31
于 2013-08-05T18:20:35.073 に答える