unique
ルールが原因でバリデーターが失敗したかどうかを確認する方法はありますか?
$rules = array(
'email_address' => 'required|email|unique:users,email',
'postal_code' => 'required|alpha_num',
);
$messages = array(
'required' => 'The :attribute field is required',
'email' => 'The :attribute field is required',
'alpha_num' => 'The :attribute field must only be letters and numbers (no spaces)'
);
$validator = Validator::make(Input::all(), $rules, $messages);
if ($validator->fails()) {
素人の言葉で言えば、私は基本的に知りたいです:「email_addressが一意ではなかったため、検証は失敗しましたか?」
失敗したルールの返された配列内の特定のルールを確認します
if ($validator->fails()) {
$failedRules = $validator->failed();
if(isset($failedRules['email_address']['Unique'])) {
...
これによりエラーが表示され、何が失敗したかがわかります。
コントローラ
if($validation->fails()){
return Redirect::back()->withErrors($validation)->withInput();
}
foreach($errors->all() as $error) {
echo $error;
}
そしてあなたのブレードテンプレートにこれを追加してください:
@foreach($errors->all() as $error)
<div>
{{$error}}
</div>
@endforeach
そして、それはエラーが何であれメッセージを返します。メールが一致しません。フィールドは必須項目です。何とか何とか
$ messageからその電子メール配列を削除することもできます。バリデーターがすべてを処理します。カスタムメッセージが必要な場合にのみ使用します。
このステートメントをvar_dumpすることもできます。
var_dump($ validation-> errors());死ぬ;