Validation $this->验证自定义重定向

Validation $this->验证自定义重定向,validation,redirect,laravel-5,Validation,Redirect,Laravel 5,我有一个有四个标签的表单,所以在验证之后,它总是在第一个标签上重定向我,但我希望它在有错误消息的那个标签上重定向我 这是我的密码 $this->validate($request, [ 'name' => 'required|min:3|alpha_spaces', 'date_of_birth' => 'required|date|date_format:"Y-m-d"',

我有一个有四个标签的表单,所以在验证之后,它总是在第一个标签上重定向我,但我希望它在有错误消息的那个标签上重定向我

这是我的密码

$this->validate($request,
                [
                'name' => 'required|min:3|alpha_spaces', 
                'date_of_birth' => 'required|date|date_format:"Y-m-d"', 
                'place_of_birth' => 'required',
                'nationality' => 'required',
                'address' => 'required',
                'port_name' => 'required',
                'contact_number' => 'required|digits_between:8,15|numeric',
                'religion' => 'required',
                'education_level' => 'required',
                'marital_status' => 'required',
                'interview_method' => 'required',
                'can_be_interviewed_via' => 'required',
                'date_to' => 'required',
                'date_from' => 'required',
                'country' => 'required',
                ]); 
对于我在每个选项卡上使用的重定向,我使用带有隐藏字段selecttab的submit按钮

if ($data['selecttab'] == 'tab0') { 
            return redirect("fdws/".$id."/edit?tab=tab0");
        }elseif($data['selecttab'] == 'tab1'){ 
            return redirect("fdws/".$id."/edit?tab=tab1");
        }elseif($data['selecttab'] == 'tab2'){ 
            return redirect("fdws/".$id."/edit?tab=tab2");  
        }else{ 
            return redirect("fdws/".$id."/edit?tab=tab3");
        }
当没有验证应用时,它可以正常工作

在调用`$this->validate$请求之前,``将`$redirect`设置为`if$data['selecttab']=='tab0'{…`语句的结果。因此,我建议首先执行if语句,并使用一个名为`$redirect`的变量来捕获if语句的结果 如果$data['selecttab']='tab0'{
$redirect=fdws/$id./edit?tab=tab0; }elseif$data['selecttab']=='tab1'{
$redirect=fdws/$id./edit?tab=tab1; }elseif$data['selecttab']=='tab2'{
$redirect=fdws/$id./edit?tab=tab2; }否则{
$redirect=fdws/$id./edit?tab=tab3; } 然后“$this->validate…”。 划破它!我犯了一个大错。官方的Laravel 5.0文档,同时也查看了Illumb\Foundation\ValidateRequests特性,在使用控制器验证时,不修改特性或其他代码就不可能只选择重定向路由。我认为使用它会给您带来所需的功能,而h要少得多找到相应的解决方案, 我就是这样做的,而且效果很好:

$validator = Validator::make($request->all(), [
            'can_be_interviewed_via' => 'required',
        ]);

        if ($validator->fails()) {
            return redirect("fdws/".$id."/edit?tab=tab3")
                        ->withErrors($validator)
                        ->withInput();
        }

在Laravel 5中,使用中间件作为控制器和路由的助手。这将对您有很大帮助。

$redirect=fdws/$id./edit?tab=tab3;$This->validate$request,['can______面试通过'=>'required',];不起作用我修改了我的答案。