laravel 表单验证及错误消息输出

30 篇文章 1 订阅
8 篇文章 0 订阅

控制器 GoodsController.php

 public function store(Request $request)
    {
//        $input = Input::except('_token');
//        $input['art_time'] = time();
        $input = $request->all();

        $rules = [
            'title' => 'required',
            'price' => 'required|numeric',
            'brand' => 'required',
            'sum' => 'required|numeric',
            'weight' => 'required|numeric',
            'number' => 'required',
            'integral' => 'required|numeric',
            'keywords' => 'required',
            'description' => 'required',
            'contents' => 'required',
        ];
        $message = [
            'title.required' => '请输入商品名称!',
            'price' => [
                'required' => '请输入商品价格!',
                'numeric' => '商品价格必须为数字',
            ],
            'brand.required' => '请输入商品隶属那个品牌',
            'sum' => [
                'required' => '请输入商品价格!',
                'numeric' => '商品价格必须为数字',
            ],
            'weight' => [
                'required' => '请输入商品重量!',
                'numeric' => '商品价格必须为数字',
            ],
            'number.required' => '请输入商品编号!',
            'integral' => [
                'required' => '请输入商品重量!',
                'numeric' => '商品价格必须为数字',
            ],
            'keywords.required' => '请输入商品的所属关键词!',
            'description.required' => '请输入商品的基本信息描述!',
            'contents.required' => '请输入商品相关内容信息!',
        ];

        $validator = Validator::make($input, $rules, $message);

        if ($validator->passes()) {
            $goods = Goods::create(array_merge($request->all(), [
                'imgpath' => '/images/default_goods.png',
                $input['shelftime'] = Carbon::now(),
                'sale' => '5',
                'online' => 'on'
            ]));
            if ($goods) {
                return redirect('admin/goods');
            } else {
                return back()->with('errors', '商品添加失败,请稍后重试!');
            }

        } else {
            return back()->withErrors($validator);
        }
    }

模板create.blade.php

@if(count($errors)>0)
            <div class="mark">
                @if(is_object($errors))
                    @foreach($errors->all() as $error)
                        <p>{{$error}}</p>
                    @endforeach
                @else
                    <p>{{$errors}}</p>
                @endif
            </div>
        @endif

隐式扩展
默认情况下,被验证的属性如果没有提供或者验证规则为required而值为空,那么正常的验证规则,包括自定义扩展将不会执行。例如,unique规则将不会检验null值:

$rules = ['name' => 'unique'];
$input = ['name' => null];
Validator::make($input, $rules)->passes(); // true

http://laravelacademy.org/post/195.html
https://docs.golaravel.com/docs/4.2/validation/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值