2

このコードでは、json データを検証しようとしていますが、valider は 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"  }}""

ユーザー名とパスワードは null ではなく、$validationtrue を返す必要があります。しかし、falseを返します

4

2 に答える 2

2

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);
于 2014-12-02T20:58:40.633 に答える
1

これが私のために働いた方法です。

$InputData = array('username' =>Input::json('username'),
                    'password'=>Input::json('password'));

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

役に立つことを願っています。

于 2015-09-07T13:41:52.820 に答える