我想进行多重验证。我有两个表教室和 join_class 。 教室表格有class_code
字段
这是我的代码:
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)当用户将class_code放入连接类表单时,如果在joinclass表中已经有class_code,那么打印"你已经在这个教室里了#34;
2)如果用户输入了错误的代码,则打印"您的代码错误"。
3)如果class_code匹配classrooms表,则在连接表中插入class_code并进入教室页面。
现在我不能做(2)条件。
答案 0 :(得分:1)
您可以使用databinding
验证来执行此操作。 Laravel Validation
exists
要指定自定义消息,您可以传递 $validator = Validator::make($request->all(), [
'class_code' => 'required|exists:classrooms,class_code',
]);
对数组以显示自定义消息。在您的情况下,它将如下:
rule=>message