零碎知识部分
-
laravel通过
Illuminate\Http\Request
对象实例注入用户请求对象; -
我们可以通过
$request->all()
获取所有的用户请求; -
laravel可以通过
dd
或者dump
打印数据 -
测试路由时需要在
app/Http/Middleware/VerifyCsrfToken.php
中添加一下代码protected $except = [ '/form*' ];
-
$request
中的except
和only
方法分别排除指定字段或者获取指定字段; -
我们还可以通过
has
和exists
方法判断某个字段是否存在; -
input
方法同样可以通过post方式或者get方式获取对应字段的值 -
可以使用
$request->segment()
获取路由参数值 -
文件上传路由的书写形式
Route::post('form/file_upload', 'RequestController@fileUpload');
-
Blade 模板中可以通过
$errors
获取验证错误信息,通过old()
辅助函数可以获取用户上次输入数据
validate验证
- 介绍:laravel中使用
artisan
指令创建的控制器默认继承基类App\Http\Controllers\Controller
,所以所以控制器都使用了ValidatesRequests
,我们需要单独引入 - 控制器中直接用
$this
调用验证validate方法,例如:
public function test(Request $request, $id)
{
$this->validate($request, [
'title' => 'bail|required|string|between:2,32',
'url' => 'sometimes|url|max:200',
],[“这里可以自定义错误的提示文字”]);
return response('表单验证通过');
}
验证规则请查看官方文档
- 我们还可以通过
Validator::make
方法进行验证表单字段:
protected function validator(array $data)
{
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
]);
}
-
我们还可以自定义一个表单请求类来进行验证,创建验证类的
artisan
命令是:
php artisan make:request SubmitFormRequest
-
自定义验证类中
authorize()
方法用来检查用户权限,rules
方法用来定义字段验证规则,messages()
用来自定义错误提示信息 -
laravel的验证中还可以验证敏感词:
public function passes($attribute, $value)
{
return strpos($value, '敏感词') === false;
}
本文参考链接:
https://laravelacademy.org/post/9676.html
https://laravelacademy.org/post/9677.html
https://laravelacademy.org/post/9680.html
https://laravelacademy.org/post/9682.html
https://laravelacademy.org/post/9683.html