• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Laravel 表单验证

php 搞代码 3年前 (2022-01-23) 22次浏览 已收录 0个评论
文章目录[隐藏]

创建一个request验证文件

php artisan make:request ArticlesRequest     Request created successfully.

文件内容如下:

app/Http/Requests/ArticlesRequest.php'required',  //这里是指定验证的项目,和验证的规则,以数组的方式编写            'content'=>'required'        ];    }}

验证规则参考官网: https://laravel.com/docs/5.2/validation

修改controller的store方法

app/Http/Requests/ArticlesRequest.phpuse App\Http\Requests\ArticlesRequest;//    public function store(Request $requests){    public function store(ArticlesRequest $requests){ //这里传入的是刚才创<a style="color:transparent">、本文来源gao($daima.com搞@代@#码$网</a><big>搞gaodaima代码</big>建的ArticlesRequest的实例        Articles::create($requests->all());        return redirect('/articles');    }

因为现在增加了验证,所以对store方法的进入的请求request都会进行过滤,但是直接过滤就不知道成功和失败了,所以要额外增加一个提示

resources/views/articles/create.blade.php@extends('layout.app')@section('content')    <h1>创建文章</h1>    {!! Form::open(['url'=>'/articles/store']) !!}            <!---ecms - Title Field -->    <div class="form-group">        {!! Form::label('title', 'Title:') !!}        {!! Form::text('title', null, ['class' => 'form-control']) !!}    </div>    <!---ecms - Content Field -->    <div class="form-group">        {!! Form::label('content', 'Content:') !!}        {!! Form::textarea('content', null, ['class' => 'form-control']) !!}    </div>    <!---ecms -  Field -->    <div class="form-group">        {!! Form::label('publish_at', 'publish_at:') !!}        {!! Form::date('publish_at', date('Y-m-d'), ['class' => 'form-control']) !!}    </div>    {!! Form::submit('发表文章',['class'=>'btn btn-primary form-control']) !!}    {!! Form::close() !!}    @if($errors->any())  //增加这里,$errors变量是laravel提供的,就是捕获这些出错而保存的变量,是一个数组        <ul class="list-group">            @foreach($errors->all() as $error) //所以需要循环变量数组,获取最终报错信息                <li class="list-group-item list-group-item-danger">{{$error}}</li>            @endforeach        </ul>    @endif@stop

需要注意的是,在laravel 5.2里面,$errors变量需要在中间件web里面才会存在,如果不是的话,laravel会报错,Undefined variable: errors。

正常情况下,触发验证规则的报错弹出提示会在网页中显示,例如

The title field is required.The content field is required.

重写报错提示信息,例如改成中文提示,需要在request文件里面重写messages方法,文件内默认没有,所以我们需要添加

app/Http/Requests/ArticlesRequest.php    public function messages()    {        return [            'title.required' => '这个标题是必须的!', //例如这样就会匹配标题required的规则,然后触发你的提示            'body.required'  => '这个身体是必须的!',        ];    }

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Laravel 表单验证
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址