sunny/validation

Illuminate Validation form valid

dev-master 2017-08-17 02:13 UTC

This package is not auto-updated.

Last update: 2024-06-23 03:31:30 UTC


README

validation

本工具简单封装了Illuminate\Validation 使其使用起来更加方便 ,需要new一个表单 添加rules 等

composer文件代码:

    "sunny/validation":"dev-master"

使用方法: 1、先构造一个需要验证的类testForm

class TestForm extends Libs\Tools\Form
{
    public function __construct($data)
    {
        parent::__construct($data);
    }

    public function rules()
    {
        return [
            'title' => 'required|string|min:2|max:5',
            'status' => 'required|integer'
        ];
    }
}

2、调用:

  $data = [
            'title' => '123457',
            'status' => 'werwer',
        ];

        $validator = (new TestForm($data))->make();
        if ($validator->fails()) {
            echo 'fail' . "<br>";
            foreach ($validator->errors()->getMessages() as $key => $error) {
                echo $error[0] . "<br>";
            }
        } else {
            echo 'ok';
        }

3、运行效果图

运行效果图

4、添加自定义验证

完整的form例子如下:

use Libs\Tools\Form;

class TestForm extends Form
{
    public function __construct($data)
    {
        parent::__construct($data);
        $this->extend();
    }

    public function rules()
    {
        return [
            'title' => 'required|string|min:2|max:5',
            'status' => 'required|integer',
            'test' => 'required|string|foo'
        ];
    }
    public function attributes()
    {
        return [
            'status'=>'状态',
            'test'=>'测试',
        ]; // TODO: Change the autogenerated stub
    }

    public function messages()
    {
        return [
            'foo' => ':attribute 不等于foo',
        ]; // TODO: Change the autogenerated stub
    }

    public function extend(){
        $this->_valid->extend('foo', function ($attribute, $value, $parameters) {
            return $value == 'foo';
        });
    }
}

例子二

$data = [
        'title' => '123457', 'status' => 'werwer',
        'test' => 'fooddd'
    ];

    $validator = (new TestForm($data))->make();
    if ($validator->fails()) {
        $this->assign('errors', $validator->errors());
    } else {
        echo 'ok';
    }
    $this->assign('form', $data);

    $this->display();

html模板如下:

<!DOCTYPE HTML>
<html>
<head>
    <meta charset="UTF-8">
    <title>form</title>
    <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
    <div class="row">
        <div class="col-md-8 col-md-offset-2">
            <div class="panel panel-default">
                <div class="panel-heading">Login</div>
                <div class="panel-body">
                    <form class="form-horizontal"  method="POST" action="">

                        <div class="form-group {$errors->has('title') ? ' has-error' : ''}">
                            <label for="title" class="col-md-4 control-label">title</label>

                            <div class="col-md-6">
                                <input id="title" type="text" class="form-control" name="title" value="{$form.title}">

                                <php>if($errors->has('title')){
                                    //echo $errors->first('title');
                                </php>
                                    <span class="help-block">
                                        <strong>{$errors->first('title')}</strong>
                                    </span>
                                <php>}</php>
                            </div>
                        </div>

                        <div class="form-group {$errors->has('status') ? ' has-error' : ''}">
                            <label for="password" class="col-md-4 control-label">status</label>

                            <div class="col-md-6">
                                <input id="password" type="text" class="form-control" name="status" value="{$form.status}">

                                <php>if($errors->has('status')){</php>
                                    <span class="help-block">
                                        <strong>{$errors->first('status')}</strong>
                                    </span>
                                <php>}</php>
                            </div>
                        </div>

                        <div class="form-group">
                            <div class="col-md-6 col-md-offset-4">
                                <div class="checkbox">
                                    <label>
                                        <input type="checkbox" name="remember"> Remember Me
                                    </label>
                                </div>
                            </div>
                        </div>

                        <div class="form-group">
                            <div class="col-md-6 col-md-offset-4">
                                <button type="submit" class="btn btn-primary">
                                    <i class="fa fa-btn fa-sign-in"></i> Login
                                </button>

                                <a class="btn btn-link" href="{{ url('/password/reset') }}">Forgot Your Password?</a>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
        </div>
    </div>
</div>
</body>
</html>

运行效果图

运行效果图

更多用法请参考:
laravel validation