2017-09-16 13 views
2

私は、コントローラのemployee_idの一意のユーザーを検証するために "ユニーク"キーワードを使用しています。私のデータベースには、新しいユーザーを追加する際にcompany_idという列があります。私の会社の従業員IDの新しいユーザーは、私の会社自身のためにユニークになります。従業員IDが別の会社の場合は4、それが受け入れなければならない会社の場合は4が追加されます。Laravel特定の列の一意のキーワード

 $this->validate($request, 
     [ 
     'name'  => 'required', 
     'emp_id' => 'required|unique:users', (Here how can i check for particular company) 
     'email' => 'required|unique:users', 
     'role' => 'required', 
     ]); 

誰でも私を助けてください?

答えて

2

をで送信していますここでは配列の構文を使用し、「カスタム」一意ルールを使用します。

'emp_id' => [ "required", Rule::unique('users')->where(function ($query) use ($request) { 
    $query->where('emp_id', $request->emp_id)->where("company_id",$request->company_id); 
}) ] 

私は=このEMP_IDを確認することができますどのように、とにかくこのような何か

+0

私は '' emp_id '=>' required | unique:users、emp_id | unique:users、company_id '、 '?を指定したのと同じではないことを知りたいと思っています。 – C2486

+0

いいえ、 'required | unique:users、emp_id | unique:users、company_id'は、' emp_id'がユーザの 'emp_id'と' company_id'の両方で一意であることを要求します。 'company_id'と' emp_id'は同じ種類の識別子ではないので、これは望ましくないでしょう。この答えは、一意の条件(実際には 'emp_id、company_id'の組み合わせが一意でなければならない)を満たす必要がある2番目のリクエストフィールド' $ request-> company_id'があると仮定します。 – apokryfos

+0

Yeh、そうです:) – C2486

1

emp_idcompany_idは、ドキュメント内の要求

'emp_id' => 'required|unique:users,emp_id|unique:users,company_id', 

チェックしている場合:https://laravel.com/docs/master/validation#rule-unique

あなたが使用する必要があり、私はemp_idcompany_idusersテーブルに存在していると仮定して、あなたが要求

+0

'が4'、特定のcompany_id = 'ハイテク' に存在..です 'EMP_ID' => '必要|ユニーク:ユーザー、のcompany_id、$のcompany_id' 、 – user7346035

+0

'emp_id'または' company_id'を送信していて、どのテーブルに 'users'が存在していますか? – C2486

+0

私はcompany_idのemp_idをチェックしたいと思います。もしcompany_id = 'tech'のemp_id = '4'が既にデータベースにあり、company_id = 'technology'にemp_id = '4'を追加できますが、emp_id = '4'を追加することはできませんcompany_id = '技術'と '技術' ..あなたは理解したのですか? – user7346035

関連する問題