Laravel 中是否可以自定义验证

我追溯了一下源码,看好像没有说可以使用自定义方法去做的,就类似于tp或者Yii的

tp
 'shop_price' => ['required', 'regex'=>'([1-9]\d*(\.\d*[1-9])?)|(0\.\d*[1-9])','checkShopPrice'],

 Yii
 public function rules()
{
  $rules = parent::rules();
  $rules[] =  [['tag_ids', 'port_ids','industry_ids','WORLD_AREA_ID','PROV_AREA_ID'], 'safe'];
  $rules[] =  [['raw_content'], 'string'];
  $rules[] =  [['industry_ids'], 'required'];
  $rules[] =  ['ONLY_WEB_NAPPINFORM' , 'validateOnlyWebApp'];

  return $rules;
}

这种形式的?
目前laravel中只有这两种方式

//方法1 控制器验证
        $this->validate($request,[
            'Student.name' => 'required|min:2|max:20',
            'Student.age' => 'required|integer',
            'Student.sex' => 'required|integer',
        ],[
            'required'=>':attribute 为必填项',
            'min' => ':attribute 长度不符合要求',
            'integer' => ':attribute 必须是一个整形',
        ],[  'Student.name' => '姓名',
            'Student.age' => '年龄',
            'Student.sex' => '性别',
        ]);

        //方法2 Validator类验证
        $validator = \Validator::make($request->input(),[
            'Student.name' => 'required|min:2|max:20',
            'Student.age' => 'required|integer',
            'Student.sex' => 'required|integer',
        ],[
            'required'=>':attribute 为必填项',
            'min' => ':attribute 长度不符合要求',
            'integer' => ':attribute 必须是一个整形',
        ],[  'Student.name' => '姓名',
            'Student.age' => '年龄',
            'Student.sex' => '性别',
        ]);

求解啊

个人技术群,欢迎加入:511807472
附言 1  ·  3年前

我自己追溯了源码,我觉得这种方式挺好的https://note.youdao.com/ynoteshare1/mobile.html?id=f1d6fda7bdd7e005f608901a2f237382&type=note&from=timeline

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
最佳答案

我自己追溯了源码,我觉得这种方式挺好的 note.youdao.com/ynoteshare1/mobile...

3年前 评论
lyxxxh 3年前
licxisky 3年前
讨论数量: 8

没懂你什么意思,,,

3年前 评论
linziyi0509 (楼主) 3年前

不是有自定义验证规则吗? 表单验证《Laravel 7 中文文档》

3年前 评论
linziyi0509 (楼主) 3年前
自由与温暖是遥不可及的梦想

laravel 的表单验证很强大 还可以 查询数据库之类的

验证层

public function rules()
{
     $rules = [
         'type' => 'required',
         'code' => [
             'required',
             functon($key, $value, $fail){
               // 可以对值 进行 一系列的验证  
               // return  $fail('错误信息');
             },
             'not_regex:/^.+$/i', // 等一些正则
              Rule::dimensions()->maxWidth(1000)->maxHeight(500)->ratio(3 / 2),
          ]
     ];
     return $rules;
}

更多 表单验证《Laravel 7 中文文档》

3年前 评论

file

Laravel

Laravel

3年前 评论
linziyi0509 (楼主) 3年前

我自己追溯了源码,我觉得这种方式挺好的 note.youdao.com/ynoteshare1/mobile...

3年前 评论
lyxxxh 3年前
licxisky 3年前

这种逻辑直接写在controller就行了。不建议封装到表单验证里面去。

3年前 评论

@di-gua mvc吗,该在哪里做的操作就到哪里去做,全在控制器做,不好

3年前 评论
lyxxxh 3年前
linziyi0509 (作者) (楼主) 3年前

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!