1
フォームの検証が失敗したときにリダイレクトに問題が発生しています。私が使用しています コードは以下の通りです:Laravel 5.2フォームの検証リダイレクトの問題
// -> use Illuminate\Support\Facades\Validator;
public function subscribe(Request $request)
{
$validator = Validator::make($request->all(), [
'email' => 'required|unique:subscriber|email',
]);
if ($validator->fails()) {
return redirect('main')
->withErrors($validator)
->withInput();
}
$email = $request->input('email');
$randomId = $this->generateRandomUserId();
$subscriberSource = $request->input('utm_source');
// ... Save user
}
そして、これは私のフォームです:
<form class="form-horizontal" role="form" method="POST" action="{{ url('/register') }}">
{!! csrf_field() !!}
<div class="form-group{{ $errors->has('email') ? ' has-error' : '' }}">
<label class="col-md-4 control-label">Email</label>
<div class="col-md-6">
<input type="email" class="form-control" name="email"
value="{{ $email or old('email') }}">
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
<i class="fa fa-btn fa-refresh"></i>Subscribe now
</button>
</div>
</div>
</form>
ユーザーが電子メールフィールドに自分の電子メールを置く必要があり、その後の上記の部分によって検証を受けますコード。
$this->validate($request, [
'email' => 'required|unique:subscriber|email',
]);
を代わりに新しいバリデータistanceを作成する、Laravelは自動的にすべてのエラーで戻ってリダイレクトし、すべての入力になりますので:問題は、ユーザーが戻ってメインページにリダイレクトされることはありません
withErrors($ validator) - > withInput(); ' –
Validatorが失敗したときだけリダイレクトが表示されますか?フォームが正当化すればどこに行かないのでしょうか? –
@StefanoGroenlandそれは正しいです。検証が失敗し、無効なデータが入力されたケースをテストしていました。 – thitami