基本例子

你可以使用 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'
]);

可在以下参数部分中找到可用验证规则的完整列表。