【发布时间】:2019-05-15 13:44:49
【问题描述】:
试图验证它,但它似乎没有进行验证并返回 200 OK。我不知道这是怎么回事。当我调试它时,我仍然找不到它不工作的原因。
服务类规则
protected $rules = [
'username' => 'required|max:20|unique:users',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required',
// **in Production **
// 'password' => [
// 'required',
// 'min:6',
// 'regex:/^.*(?=.{3,})(?=.*[a-zA-Z])(?=.*[0-9])(?=.*[\d\X])(?=.*[!$#%]).*$/',
// 'confirmed'
// ],
/**
* Three of the five rules.
* English uppercase characters (A – Z)
* English lowercase characters (a – z)
* Base 10 digits (0 – 9)
* Non-alphanumeric (For example: !, $, #, or %)
* Unicode characters
*/
'first_name' => 'required|string|max:255',
'last_name' => 'required|string|max:255',
'phone' => 'required|regex:/^([0-9\s\-\+\(\)]*)$/|min:5',
'role' => 'required',
];
从服务类验证方法
public function validate($user)
{
$validator = Validator::make($user, $this->rules);
$validator->validate();
}
在控制器中存储方法
public function store(Request $request)
{
$validate = $this->userService->validate($request->all());
if ($validate->fails()) {
return response()->json(['message' => $validate->failed()], 400);
} else {
try {
$user = $this->userService->createUser($request);
return response()->json($user, 201);
} catch (Exception $e) {
return response()->json(['message' => $e->getMessage()], 500);
}
}
}
【问题讨论】:
-
您的目标是让您的代码在多个类文件中解耦,对吗?如果是这样,为什么不使用或请求类?这可以处理您的验证逻辑,而无需手动检查验证是否通过。如果你同意我可以指导完成它。
标签: laravel laravel-validation