第七章 服务 ―― 验证.pdfVIP

  • 6
  • 0
  • 约1.3万字
  • 约 17页
  • 2017-06-24 发布于福建
  • 举报
服务 ―― 验证 服务 —— 验证 1、简介 Laravel提供了多种⽅法来验证应⽤输⼊数据。默认情况下,Laravel的控制器基类使 ⽤ValidatesRequests trait ,该trait提供了 利的⽅法通过各种功能强⼤的验证规 则。 2、快速⼊门 要学习Laravel强⼤的验证特性,让我们先看⼀个完整的验证表单并返回错误信息给⽤ 户的例⼦。 2.1 定义路由 ⾸先,我们假定在app/Http/routes.php⽂件中包含如下路由: // 显示创建博客⽂章表单... Route::get(post/create, PostController@create); // 存储新的博客⽂章... Route::post(post, PostController@store); 当然,GET路由为⽤户显⽰了⼀个创建新的博客⽂章的表单,POST路由将新的博客 ⽂章存储到数据库。 2.2 创建控制器 接下来,让我们看⼀个处理这些路由的简单控制器⽰例。我们先将store⽅法留空: ?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Controllers\Controller; class PostController extends Controller{ /** * 显示创建新的博客⽂章的表单 * * @return Response */ public function create() { return view(post.create); } /** * 存储新的博客⽂章 * * @param Request $request * @return Response */ public function store(Request $request) { // 验证并存储博客⽂章... } } 2.3 编写验证逻辑 现在我们准备⽤验证新博客⽂章输⼊的逻辑填充store⽅法。如果你检查应⽤的控制 器基类 (App\Http\Controllers\Controller),你会发现该类使⽤了 ValidatesRequests trait ,这个trait在所有控制器中提供了⼀个 利的validate ⽅法。 validate⽅法接收⼀个HTTP请求输⼊数据和验证规则,如果验证规则通过,代码将 会继续往下执⾏;然⽽,如果验证失败,将会抛出⼀个异常,相应的错误响应也会⾃ 动发送给⽤户。在⼀个传统的HTTP请求案例中,将会⽣成⼀个重定向响应,如果是 AJAX请求则会返回⼀个JSON 响应。 要更好的理解validate⽅法,让我们回到store⽅法: /** * 存储博客⽂章 * * @param Request $request * @return Response */ public function store(Request $request){ $this-validate($request, [ title = required |unique:posts|max :255, body = required, ]); // 验证通过,存储到数据库... } 正如你所看到的,我们只是传递输⼊的HTTP请求和期望的验证规则到validate⽅ 法,在强调⼀次,如果验证失败,相应的响应会⾃动⽣成。如果验证通过,控制器将 会继续正常执⾏。 2.3.1 嵌套属性注意事 如果HTTP请求中包含“嵌套”参数,可以使⽤“ .”在验证规则中指定它们: $this-validate($request, [ title = required |unique:posts|max :255, = required, author.description = required, ]); 2.4 显⽰验证错误信息 那么,如果请求输⼊参数没有通过给定验证规则怎么办?正如前⾯所提到的,Laravel 将会⾃动将⽤户重定向回上⼀个位置。此外,所有验证错误信息会⾃动⼀次性存放到 session 。 注意我们并没有在GE

文档评论(0)

1亿VIP精品文档

相关文档