Laravel5: 学习笔记

家里抽油烟机坏了,唉。

今天继续看了下 Laravel,第 12 集讲的是表单验证,还挺有意思的。

回顾 Michelle 的 test project,其实会有一个问题,如果不选择 request 而直接提交,会报错,然后有没有解决办法呢?有的,可以加一个 validation。

php artisan make:request CreateNewRequest

这个文件在 App\Http\Requests 下面,其中包括两个 method,一个是 authorize() 函数,一个是 rules() 函数。

由于我们没有调用用户模块,所以 authorize() 部分先设为 return true,然后在 Rule() 部分添加即可,还可以进一步加限定,比方 required|min:3,required|date 等。

        return [
            'request_type'=>'required'
        ];

就是这么简单,然后在 controller 里面加上这个:

public function choose(CreateNewRequest $request){

其实我一直不是很懂这种写法,第一个应该是引用了一个 class,然后 $request 是个什么鬼?视频里说是对 CreateNewRequest 的命名,可能这是引用了一个对象,然后把这个对象起了个名字,好像是这样子的,我试过随便改名字,不影响执行效果。

这样子设定之后,如果我什么都不选,结果就是,会重新回到这个页面,不再报错,不过用户会很奇怪,因为没有错误提示。

laravel 在 view 界面可以 dump 出错误信息用于 debug:

{{var_dump($errors)}}

然后,可以让它变得好看一些:

		@if ($errors->any())
		<div class="alert alert-danger">
			<button type="button" class="close" data-dismiss="alert" aria-hidden="true">&times;</button>
			<strong>Error</strong>
			@foreach ($errors->all() as $error)
				<li>{{$error}}</li>
			@endforeach
		</div>
		@endif

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.