我没有这个控制器的视图。我想使用Laravel验证来检查变量。并通过在控制器中返回字符串来显示自定义错误。(我不使用视图,刀片,会话,...我只是返回字符串)
if(strlen($username) < 4) return '{"r": "US","msg": "username is short"}';
if(strlen($username) > 64) return '{"r": "UL","msg": "username is long"}';
if(preg_match("/(\S*\d+\S*[[:alpha:]]+\S*)|(\S*[[:alpha:]]+\S*\d+\S*)/", $password)) return '{"r": "P","msg": "wrong password"}';
if(strlen($name) > 32) '{"r": "N","msg": "wrong name"}';
if(strlen($address) > 200) '{"r": "A","msg": "wrong address"}';
我想要这样的事情:
'username' => 'required|min:4|max:64|unique:users|regex:/[a-zA-Z]+[a-zA-Z0-9_]*/',
'email' => 'required|unique:users|email|min:8',
...
答案 0 :(得分:1)
您可以使用Validator
外观来验证控制器中的任何请求。您也可以使用自己的消息进行扩展。
$validator = Validator::make($request->all(), [
'username' => 'required|min:4|max:64|unique:users|regex:/[a-zA-Z]+[a-zA-Z0-9_]*/',
'email' => 'required|unique:users|email|min:8',
],
[
'email.required' => 'Email is required',
'username.unique' => 'Username is taken'
]);
如果此验证失败,您甚至可以决定该怎么做
if ($validator->fails()) {
return redirect()->route('register')
->withErrors($validator)
->withInput();
}
现在,如果您需要访问这些错误消息,可以执行以下操作:
if($validator->fails()) {
$errors = $validator->errors();
}
现在您可以访问您定义的错误消息,如果没有覆盖,则可以访问默认消息。