2017-03-20 53 views
0

カスタムルールでカスタムエラーメッセージが動作しません。変数$ messages uniqueTeamNameForcompを参照してください。Laravel(5.3.24+)検証:カスタムエラーメッセージでのカスタム検証

カスタムルールは大丈夫ですが、ルールのカスタムメッセージも必要です。

ルールuniqueTeamNameForCompに表示されるエラーメッセージは、「この名前はすでにこの競技会に存在しています」というエラーメッセージを読み取る必要がある場合に「unique_team_name_for_comp」です。

CONTROLLER:

​​

サービスプロバイダー:

public function boot() 
{ 
    Validator::extend('uniqueTeamNameForComp', function ($attribute, $value, $parameters, $validator) { 
     $competitionId = $parameters[0]; 

     return count(Tteam::where("comp_id", "=", $competitionId)->whereName($value)->get()) == 0; 
    }); 
} 
+0

なぜだけではなく、使用 ' 'ユニーク:tteams、名前、NULL、ID、COMP_ID'。' $要求に等しいCOMP_IDでレコードを一意にするために、名前が必要になります$要求 - > compzid' - > compzid'を実行し、IDがnullのレコードを無視します(最後の部分は[一意の検証](https://laravel.com/docs/5.1/validation#rule-unique)のパラメータ順序のためです) – jfadich

答えて

0

あなたはLaravelから見ている出力は、実際にあなたにヒントを与えています。それはカスタムメッセージがラクダの場合ではなく、スネークの場合の検証ルールによってキーイングされることを期待しています。

$messages = array(
    'unique_team_name_for_comp' => 'This name already exist for this competition', 
    'required'     => 'this works' 
); 
関連する問題