V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
yakczh
V2EX  ›  PHP

lavarel 验证表单,验证器带需要参数的话怎么写?

  •  
  •   yakczh · 2014-03-18 15:28:09 +08:00 · 2966 次点击
    这是一个创建于 3908 天前的主题,其中的信息可能已经有所发展或是发生改变。
    $v = Validator::make($data, array(
    'email' => 'required|email',
    'salary' => 'required|numeric',
    ));

    看了一个文档,一个字段多个验证规则是用|分开的,如果是数值范围 比如 3000-5000这种自定义的参数,怎么设置验证表单的rules
    7 条回复    1970-01-01 08:00:00 +08:00
    dongbeta
        1
    dongbeta  
       2014-03-18 16:05:15 +08:00
    可以写两个:

    'salary' => 'required|numeric|min:3000|max:5000',
    yakczh
        2
    yakczh  
    OP
       2014-03-18 16:12:16 +08:00
    @dongbeta 再问个问题, artisan 能把代码里的print_r信息显示在控制台上吗?
    Route::post('register', array('before' => 'csrf', function()
    {
    $rules = array(
    'username' => array('required', 'unique:users,username'),
    'email' => array('required', 'email', 'unique:users,email'),
    'password' => array('required', 'min:7')
    );
    $data=Input::all();

    print_r($data);
    $validation = Validator::make( $data, $rules);

    if ($validation->fails())
    {
    $messages = $validator->messages();

    print_r($messages);

    return Redirect::to('/add')->withErrors($validator)->withInput();

    }else {

    User::create($data);

    }

    模板文件是
    <h2>Register!</h2>

    @if( $errors->count() > 0 ) <p>The following errors have occurred:</p>
    <ul id="form-errors">
    {{ $errors->first('email', '<li>:message</li>') }}
    {{ $errors->first('username', '<li>:message</li>') }}
    {{ $errors->first('password', '<li>:message</li>') }}
    </ul> @endif

    <hr/>

    {{ Form::open(['register', 'post']) }}

    <br/>{{ Form::label('username', 'Username') . Form::text('username', Input::old('username')) }}
    <br>{{ Form::label('email', 'E-mail') . Form::text('email', Input::old('email')) }}
    <br>{{ Form::label('password', 'Password') . Form::password('password') }}

    <br>{{ Form::submit('Register!') }}

    {{ Form::token() . Form::close() }}


    递交表单老是重定向到 表单页面,显示
    The following errors have occurred:

    但是下面什么也没有,怎么在服务端 查看post提交的数据和出错信息?
    dongbeta
        3
    dongbeta  
       2014-03-18 16:21:39 +08:00
    没看明白。以上这段程序的 php 不应该在一个文件中吧。
    yakczh
        4
    yakczh  
    OP
       2014-03-18 17:10:45 +08:00
    @dongbeta 一个是后台接受递交参数的 一个是前台模板显示表单的
    Yuansir
        5
    Yuansir  
       2014-03-18 17:16:34 +08:00
    'salary' => 'required|numeric|between:3000,5000,
    yakczh
        6
    yakczh  
    OP
       2014-03-18 17:20:53 +08:00
    @Yuansir 如果是验证敏感词和非法注入之类的处理呢?
    Yuansir
        7
    Yuansir  
       2014-03-18 17:30:05 +08:00
    @yakczh github上有类似 xssinput 的包,你也自己写过滤逻辑对Input处理
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1251 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 18:19 · PVG 02:19 · LAX 10:19 · JFK 13:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.