基本例子
你可以使用 validate
方法验证请求数据(可在基本控制器中获得,由 ValidatesRequests
特性提供)。
如果规则通过,你的代码将继续正常执行; 但是,如果验证失败,将自动发回包含验证错误的错误响应:
- 对于典型的 HTML 表单请求,用户将被重定向到上一页,表单保留提交的值
- 对于期望 JSON 响应的请求,将生成具有代码 422 的 HTTP 响应
例如,在你的 UserController
中,你可能会在 store
方法中保存一个新用户,这需要在保存之前进行验证。
/**
* @param Request $request
* @return Response
*/
public function store(Request $request) {
$this->validate($request, [
'name' => 'required',
'email' => 'email|unique:users|max:255'
],
// second array of validation messages can be passed here
[
'name.required' => 'Please provide a valid name!',
'email.required' => 'Please provide a valid email!',
]);
// The validation passed
}
在上面的示例中,我们验证 name
字段是否存在非空值。其次,我们检查 email
字段是否具有有效的电子邮件格式,在数据库表 users
中是唯一的,并且最大长度为 255 个字符。
|
(管道)字符组合了一个字段的不同验证规则。
有时你可能希望在第一次验证失败后停止对属性运行验证规则。为此,请将 bail
规则分配给属性:
$this->validate($request, [
'name' => 'bail|required',
'email' => 'email|unique:users|max:255'
]);
可在以下参数部分中找到可用验证规则的完整列表。