Laravel5: 学习笔记
家里抽油烟机坏了,唉。
今天继续看了下 Laravel,第 12 集讲的是表单验证,还挺有意思的。
回顾 Michelle 的 test project,其实会有一个问题,如果不选择 request 而直接提交,会报错,然后有没有解决办法呢?有的,可以加一个 validation。
1 |
php artisan make:request CreateNewRequest |
这个文件在 App\Http\Requests 下面,其中包括两个 method,一个是 authorize() 函数,一个是 rules() 函数。
由于我们没有调用用户模块,所以 authorize() 部分先设为 return true,然后在 Rule() 部分添加即可,还可以进一步加限定,比方 required|min:3,required|date 等。
1 2 3 |
return [ 'request_type'=>'required' ]; |
就是这么简单,然后在 controller 里面加上这个:
1 |
public function choose(CreateNewRequest $request){ |
其实我一直不是很懂这种写法,第一个应该是引用了一个 class,然后 $request 是个什么鬼?视频里说是对 CreateNewRequest 的命名,可能这是引用了一个对象,然后把这个对象起了个名字,好像是这样子的,我试过随便改名字,不影响执行效果。
这样子设定之后,如果我什么都不选,结果就是,会重新回到这个页面,不再报错,不过用户会很奇怪,因为没有错误提示。
laravel 在 view 界面可以 dump 出错误信息用于 debug:
1 |
{{var_dump($errors)}} |
然后,可以让它变得好看一些:
1 2 3 4 5 6 7 8 9 |
@if ($errors->any()) <div class="alert alert-danger"> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <strong>Error</strong> @foreach ($errors->all() as $error) <li>{{$error}}</li> @endforeach </div> @endif |