2016-09-28 22 views
0

私はLaravelを初めて利用しています。リクエストを検証しようとしています。私は、次のリクエストクラスにあります。Laravel:1つのフィールドで同じルールの検証メッセージ

namespace App\Http\Requests; 

class TestRequest extends FormRequest 
{ 
    protected function rules() 
    { 
     return [ 
      'group_id' => 'required|exists:groups,id,deleted_at,NULL|exists:group_users,group_id,user_id,' . \Auth::user()->id 
     ]; 
    } 
} 

私の問題は、次のとおりです。

  • 私はグループが存在し、それが削除されていないことを確認する必要があります。 これは最初の「存在する」ルールです。
  • 現在ログインしているユーザーがグループの一部であることを確認する必要があります。 2番目の「存在」ルール。

私の質問は:

  • 2のいずれかが存在して失敗し、どのように私は1つが故障しwhitchを知っていますか?
  • これらの存在チェックに対して異なるエラーメッセージを返したいとします。私はどうすればいいのですか?
  • カスタム検証を行う必要がありますか?

PS:私は、カスタムルールを書い推薦Laravel 5.3に

+0

が複数であっても作業ルールが存在するあなたのコードでそれを追加する場所については、下記のリンクをチェックしてください! –

+0

うん、それはうまく動作します –

答えて

1

を使用しています。

https://laravel.com/docs/5.3/validation#custom-validation-rules

Validator::extend('group_check', function($attribute, $value, $parameters, $validator) { 
    // Do custom exists check 1; 
    $group = Group::where('id', $value)->where('deleted_at', 'null')->first(); 

    if (!$group) { 
     return false; 
    } 

    // Do custom exists check 2; 
}); 

Validator::replacer('group_check', function($message, $value, $parameters, $validator) { 
    // Do custom exists check 1 but instead of returning false, return a custom message 

    // Do custom exists check 2 return a custom message 
}); 
+0

うん。私はそれをこのようにしました。バリデーターを拡張しました。 –

関連する問題