前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >laravel 表单验证之自定义验证规则

laravel 表单验证之自定义验证规则

作者头像
友儿
发布2022-09-11 12:44:20
发布2022-09-11 12:44:20
2.1K00
代码可运行
举报
文章被收录于专栏:友儿友儿
运行总次数:0
代码可运行
以添加用户为例

主要验证的字段

代码语言:javascript
代码运行次数:0
运行
复制
tusername、username、password、phone
辅助验证的字段 password_confirmation

验证第一种:

代码语言:javascript
代码运行次数:0
运行
复制
 //添加操作
    public function store(Request $request)
    {
        $this->validate($request, [
            'tusername' => 'required',
            'username'  => 'required|unique:users,username',
            'password'  => 'required|confirmed|digits_between:6,16',
            'phone'     => 'nullable|phone'
        ],[
            'tusername.required' => '真实姓名不能为空',
            'password.confirmed' => '两次密码不一致',
            'password.digits_between' => '密码字符必须在6到16个字符',
            'phone.phone' => '手机号不合法'  
        ]);

        $post = $request->except(['_token','password_confirmation']);
        $pwd = $post['password'];
        $post['password'] = bcrypt($pwd);
        $user = User::create($post);
        /**
         * 发邮件
         * 发送类Mali类(静态方法)
         * 文本raw()
         * 富文本send()
         * 发送邮件的账号,需要开启stmp协议。
         * stmp默认端口是25,默认未打开,需自行打开。
         * 以QQ邮箱为例:mail.qq.com
         */
        /*发送富文本*/
        Mail::send('mail.adduser',compact('user','pwd'), function (Message $message)use ($user){
            $message->to($user->email)
                ->subject('开通账号邮件通知');
        });

        return redirect(route('admin.user.index'))->with('success','添加用户成功');
    }
或者这样
//添加操作
    public function store(Request $request)
    {
        $this->validate($request, [
            'tusername' => 'required',
            'username'  => 'required|unique:users,username',//用户名唯一性验证
            'password'  => 'required|confirmed|digits_between:6,16',
            'phone'     => 'nullable|phone'
        ],[
            'tusername.required' => '真实姓名不能为空',
            'password.confirmed' => '两次密码不一致',
            'password.digits_between' => '密码字符必须在6到16个字符',
        ]);

        $post = $request->except(['_token','password_confirmation']);
        $pwd = $post['password'];
        $post['password'] = bcrypt($pwd);
        $user = User::create($post);
        /**
         * 发邮件
         * 发送类Mali类(静态方法)
         * 文本raw()
         * 富文本send()
         * 发送邮件的账号,需要开启stmp协议。
         * stmp默认端口是25,默认未打开,需自行打开。
         * 以QQ邮箱为例:mail.qq.com
         */
        /*发送富文本*/
        Mail::send('mail.adduser',compact('user','pwd'), function (Message $message)use ($user){
            $message->to($user->email)
                ->subject('开通账号邮件通知');
        });

        return redirect(route('admin.user.index'))->with('success','添加用户成功');
    }
//Providers->AppServiceProvider.php 
 public function boot()
    {
        //
        //自定义规则(参数1:规则名称)
        Validator::extend('phone', function ($attribute, $value, $parameters, $validator) {
            $reg0 = '/^\+86-1[3-9]\d{9}$/';
            $reg1 = '/^1[3-9]\d{9}$/';
            return preg_match($reg0, $value) || preg_match($reg1, $value);
        });
    }
或者在resources->lang->zh-CN->validation
 //自定义提示
 'phone'        => ':attribute  号码不合法',
 attributes     =>  [
           'phone'                 => '电话'
]
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 以添加用户为例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档