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>

这里写图片描述

这是点击提交后的路由

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来获取错误。

<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>

@if($errors->any())
    @foreach($errors->all() as $error)
        <li>{{ $error }}</li>
    @endforeach
@endif

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

提交空白表达时的效果:

这里写图片描述

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值