laravel 验证 Request

创建

通过注入的方式实现代码解耦(分离验证代码=》使代码更简洁)

 php artisan make:request StoreBlogPost

三个基本方法

  1. authorize

判断请求用户是否经过认证


public function authorize()
{
    //默认为 false,返回值为true时才有权限
    //return true; 
    
    
    //表单的请求权限(用户是否有这个ID的评论)
    //Request的route 可以获取路由的参数
    $commentId = $this->route('id');
     return Comment::where('id', $commentId)
                  ->where('user_id', Auth::id())->exists();
}
  1. rules

验证规则

public function rules()
{
    return [
        'name'=>'required|unique:admin_permissions|max:255',
        'label'=>'required|max:255',
        'cid'=>'required|int',
    ];
}
  1. messages

验证信息

public function messages()
{
    return [
          'title.required' => 'A title is required',
           'body.required'  => 'A message is required',
          ];
}

控制层的使用

通过注入使用验证 (自动验证)
public function store(namePostRequest $request)
{
//自动验证
}

视图中添加错误信息

视图中添加错误信息

(
   $errors 是视图中一直存在的变量=》是一个Collection(集合)
   Session::get('errors') 获取=》原来就是一个session
)
@if (count($errors) > 0)
    <div class="alert alert-danger">
        <ul>
            @foreach ($errors->all() as $error)
        <li>{{ $error }}</li>
            @endforeach
        </ul>
    </div>
@endif

** 可以在控制器中重写formatValidationErrors 方法不用all() =》即返回数组
  1.   protected function formatValidationErrors(Validator $validator)
  2.     {
  3.         return $validator->errors()->all();
  4.     }

http://laravelacademy.org/post/6768.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,658评论 19 139
  • 验证 简介 Laravel 对验证应用的输入数据提供了多中途径的实现。默认的,Laravel 的基础控制器类使用了...
    Dearmadman阅读 13,458评论 5 8
  • 1、简介 Laravel 提供了多种方法来验证应用输入数据。默认情况下,Laravel 的控制器基类使用Valid...
    伊Summer阅读 5,438评论 0 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,764评论 25 709
  • 《天天在落叶》 ——作者:陆陈蔚 一望还在后陈营路 普天下一样的市声 天天在落叶 却四季常青的樟树 雾霾...
    陆陈蔚阅读 2,548评论 0 1