【问题标题】:Laravel validate json dataLaravel 验证 json 数据
【发布时间】:2015-01-31 03:45:49
【问题描述】:

在这段代码中,我尝试验证 json 数据,但验证器返回 false

        $username = $data['username'];
        $password = $data['password'];

        $input = Input::json();
        $rules = array(
            'username' => 'required',
            'password' => 'required',
        );
        $input_array = (array)$input;
        $validation = Validator::make($input_array, $rules);
        if ($validation->fails()) {
            var_dump( $input_array );
        }else {
                $result = array('code'=>'3');
            }

var_dump 结果是:

array(1) {  ["parameters"]=>  array(3) {    ["password"]=>    string(9) "world"    ["username"]=>    string(1) "hello"    ["function"]=>    string(8) "register"  }}""

用户名和密码不为空,$validation 必须返回 true。但返回错误

【问题讨论】:

    标签: php json laravel laravel-4 laravel-validation


    【解决方案1】:

    您的 var_dump 显示您尝试验证的数据位于“参数”数组中。您要么需要更改规则以包含参数,要么需要将参数数组传递给 validate 方法。

    选项 1 - 更改规则:

    $rules = array(
        'parameters.username' => 'required',
        'parameters.password' => 'required',
    );
    $input_array = (array)$input;
    $validation = Validator::make($input_array, $rules);
    

    选项 2 - 验证参数数组中的数据:

    $rules = array(
        'username' => 'required',
        'password' => 'required',
    );
    $input_array = (array)$input;
    $validation = Validator::make($input_array['parameters'], $rules);
    

    【讨论】:

      【解决方案2】:

      这是一种对我有用的方法。

      $InputData = array('username' =>Input::json('username'),
                          'password'=>Input::json('password'));
      
      $validation = Validator::make( $InputData,array('username'=>'required|email','password'=>'required'));
      

      希望你觉得它有用。

      【讨论】:

        猜你喜欢
        • 2019-06-10
        • 2018-01-22
        • 2017-09-24
        • 2018-02-23
        • 1970-01-01
        • 2010-11-15
        • 2016-02-22
        • 2017-10-15
        • 1970-01-01
        相关资源
        最近更新 更多