Laravel 表单验证功能

Laravel有一套非常强大的表单验证功能。

这里将利用继承Request创建类,进行验证。

现在有表单

<form action="{{ url('saveArticle') }}" method="post">
    {{ csrf_field() }}
    <h1>文章h1>
    <br/>标题: <br/>
    <input type="text" name="title" value="{{ old('title') }}">
    <br/> 内容: <br/>
    <textarea style="height: 200px; width: 300px;" name="content">{{ old('content') }}textarea>
    <br/>
    <input type="submit" value="提交">
form>

Laravel 表单验证功能_第1张图片

这是点击提交后的路由

Route::post('/saveArticle', 'TaskController@store');

TaskControllerstore方法

class TaskController extends Controller {

    public function store(Request $request) {
        //...存储操作
    }

}

如果没有表单验证,未输入任何数据点击提交,就会在数据库中插入空的数据,这是非常不友好的,我们需要过滤这种情况。

首先使用控制台在项目下使用

php artisan make:request CheckValRequest

随后在app\Http\Request下生产了一个CheckValRequest类。

class CheckValRequest extends Request
{
    /**
     * Determine if the user is authorized to make this request.
     *
     * @return bool
     */
    public function authorize()
    {
        return true;
    }

    /**
     * Get the validation rules that apply to the request.
     *
     * @return array
     */
    public function rules()
    {
        return [
            'title' => 'required | Min:3',
            'content' => 'required',
        ];
    }
}

authorize()方法主要判断该用户是否有权限进行接下来的操作,返回true表示有,这里我们把它改成true
rules()方法定义相关验证规则。required表示title不能为空,Min : 3表示title长度最小为3 。

定义好规则后,修改TaskControllerstore()方法

class TaskController extends Controller {
    public function store(CheckValRequest $request) {
        //...存储操作
    }
}

这里使用CheckValRequest作为参数,这样就完成了数据的验证。
如果我们填写的数据不满足规定的要求,会返回之前的页面。不然会进行store()的操作。

可以通过$errors来获取错误。

"{{ url('saveArticle') }}" method="post"> {{ csrf_field() }}

文章


标题:
"text" name="title" value="{{ old('title') }}">
内容:

"submit" value="提交">
@if($errors->any()) @foreach($errors->all() as $error)
  • {{ $error }}
  • @endforeach @endif

    old()方法用来获取”老数据”。

    提交空白表达时的效果:

    Laravel 表单验证功能_第2张图片

    下面的2行就是具体的错误。

    你可能感兴趣的:(【Laravel框架】)