[英]If form validation failed then redirect back with input using custom request class (laravel 5.8)
The problem is i want to return back with the inputs when the validation is fails.问题是我想在验证失败时返回输入。 Here I'm using a custom request class to validate user input.
在这里,我使用自定义请求 class 来验证用户输入。
Now my question is where i place this piece of code on Controller Or in Request class .
现在我的问题是我将这段代码放在Controller或Request class的哪里。
or is there another way to do it?还是有其他方法可以做到这一点?
Here is the code i want to use: return redirect()->back()->withInput();
这是我要使用的代码:
return redirect()->back()->withInput();
Here is the Controller:这是 Controller:
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Requests\Admin\counter\CreateCounterRequest;
use App\Models\Admin\Counter;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class CounterController extends Controller
{
public function store(CreateCounterRequest $request)
{
Counter::create([
'title' => $request->title,
'ion_icon' => $request->ion_icon,
'counter_value' => $request->counter_value,
]);
session()->flash('success', 'Counters created successfully.');
return redirect(route('counter.index'));
}
}
Here is the Request Class:这是请求 Class:
<?php
namespace App\Http\Requests\Admin\counter;
use Illuminate\Foundation\Http\FormRequest;
class CreateCounterRequest extends FormRequest
{
public function rules()
{
return [
'ion_icon' => 'required',
'title' => 'required',
'counter_value' => 'required|numeric',
];
}
}
you can use a method from FormRequest class, that is failedValidation() method.您可以使用FormRequest class 中的方法,即failedValidation()方法。
and example code is like this:示例代码是这样的:
protected function failedValidation(Validator $validator)
{
return back()->withErrors($validator)->withInput();
}
you must add a argument from Illuminate\Contracts\Validation\Validator class to your method failedValidation and add Illuminate\Http\RedirectResponse class for get redirect method.您必须将Illuminate\Contracts\Validation\Validator class 的参数添加到您的方法failedValidation并添加Illuminate\Http\RedirectResponse class 以获得重定向方法。
add Illuminate\Validation\ValidationException class, if not your method cant be read.添加Illuminate\Validation\ValidationException class,如果不是,您的方法无法读取。
please check this请检查这个
use Illuminate\Support\Facades\Validator;
protected function validator(array $data)
{
return Validator::make($data, [
'ion_icon' => 'required',
'title' => 'required',
'counter_value' => 'required',
]);
}
public function store(Request $request)
{
$validator = $this->validator($request->all());
if ($validator->fails()) {
return redirect()->route('your_route')->withInput(['title' => $request->title, 'icon_icon' => $request->icon_icon,'counter_value' => $request->couter_value,'phone_number'=>$request->phone_number])->withErrors($validator, 'your_desire_name');
}
Counter::create([
'title' => $request->title,
'ion_icon' => $request->ion_icon,
'counter_value' => $request->counter_value,
]);
session()->flash('success', 'Counters created successfully.');
return redirect(route('counter.index'));
}
Want In Your Blade File Show this error message希望在您的刀片文件中显示此错误消息
<div >
<input type="text" name="title" class="form-control"
value="{{old('title')}}" required>
</div>
@if ($errors->your_desire_name->has('title'))
<span class="messages"><p
class="text-danger error">{{ $errors->your_desire_name->first('title') }}</p></span>
@endif
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.