Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 5.2 多重验证在Laravel 5.2中不起作用_Laravel 5.2 - Fatal编程技术网

Laravel 5.2 多重验证在Laravel 5.2中不起作用

Laravel 5.2 多重验证在Laravel 5.2中不起作用,laravel-5.2,Laravel 5.2,我想进行多重验证。我有两个课室和一个班级教室表格中有班级代码字段。 这是我的密码: public function postJoinclass(Request $request) { $validator = Validator::make($request->all(), [ 'class_code' => 'required', ]); if ($validator->fails()) { r

我想进行多重验证。我有两个课室和一个班级教室表格中有
班级代码
字段。
这是我的密码:

public function postJoinclass(Request $request)
   {
       $validator = Validator::make($request->all(), [
        'class_code' => 'required',
       ]);
        if ($validator->fails()) {
        return Redirect::back()
            ->withErrors($validator);
        }
        else{
               $class_code = $request->get('class_code');
               if($classroom = joinclass::where('class_code',$class_code)->first())
               {
                   Flash::message('You are already in this classroom');
                   return Redirect::route('joinclass');
                }else{
                       if($classroom = classroomModel::where('class_code','!',$class_code)->first())
                       {
                           Flash::message('Your class code is wrong!');
                           return Redirect::route('joinclass');
                       }else{
                         $class = new joinclass();
                         $class -> user_id = Auth::user()->id;
                         $class -> class_code = $request['class_code'];
                         $class -> save();
                         $class_code = $request->get('class_code');
                         $classroom = classroomModel::where('class_code',$class_code)->first();
                         var_dump($classroom->toArray());
                         return Redirect::route('class',['class_id'=>$classroom->id]);
                         die(var_dump($classroom));
               }
           }
            }

                    return view('class',[

                ])->with('class_id',$request->get('class_id'));
                //->with('classroom',$classroom);
    }
现在我想验证这些类型:
1) 当用户在join class表单中输入class_代码时,如果joinclass表中已经有class_代码,则打印“您已经在这个教室里了”
2) 如果用户输入了错误的代码,则打印“您的代码错误”。
3) 如果类代码与教室表匹配,则在联接表中插入类代码并进入教室页面


现在我无法执行(2)条件。

您可以使用
exists
验证来执行此操作

更新: 要指定自定义消息,可以传递
rule=>message
对数组以显示自定义消息。在您的情况下,它将如下所示:

   $validator = Validator::make($request->all(), [
    'class_code' => 'required|exists:classrooms,class_code',
   ],[
    'class_code.required' => 'Please specify the Class Code', // change this to your required message
    'class_code.exists' => 'Your code is wrong'
   ]);

我更新了答案以包含自定义消息。。检查它,并让我知道它是否有效。此验证会产生问题。也就是说,如果新用户加入一个教室,那么如果join类已经有了该类代码。这表明你已经在上课了。我需要验证它,就像一个用户不能在同一个类中进行两次交互一样。但是在一个教室里,有许多用户..@Shuvo这可能是验证器的问题,因为我们没有对joinclass表使用任何验证
   $validator = Validator::make($request->all(), [
    'class_code' => 'required|exists:classrooms,class_code',
   ],[
    'class_code.required' => 'Please specify the Class Code', // change this to your required message
    'class_code.exists' => 'Your code is wrong'
   ]);