Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/283.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php RESTAPI请求参数验证Laravel_Php_Laravel 5 - Fatal编程技术网

Php RESTAPI请求参数验证Laravel

Php RESTAPI请求参数验证Laravel,php,laravel-5,Php,Laravel 5,我是新的API与拉威尔。我试图通过Laravel的validate方法验证发送到POST请求中的参数 以下数据是我通过POST请求发送的唯一参数。我想使用Laravel的验证方法验证设备id的唯一性 data => {"device_id":"xxxxxx2C-9EA3-4FFB-B26D-E8E483xxxxxx","password":"ANVp285x","user_type":"1"} 我可以验证唯一的数据参数,但是没有正确的响应或错误消息,它引发异常。我的主要目的是验证设备i

我是新的API与拉威尔。我试图通过Laravel的validate方法验证发送到POST请求中的参数

以下数据是我通过POST请求发送的唯一参数。我想使用Laravel的验证方法验证设备id的唯一性

data => {"device_id":"xxxxxx2C-9EA3-4FFB-B26D-E8E483xxxxxx","password":"ANVp285x","user_type":"1"} 
我可以验证唯一的数据参数,但是没有正确的响应或错误消息,它引发异常。我的主要目的是验证
设备id
密码
用户类型

这是我的控制器商店

public function store(Request $request) {

    try {
        $result = $this->validate($request, [
            'data' => 'required',
//                'data.device_id' => 'required|unique:users|max:60',
//                'data.password' => 'required|min:6|confirmed',
//                'data.user_type' => 'required',
        ]);
        $user = new User;
//        Parameters from request
        $data = json_decode($request->data, TRUE);
        $user->device_id = $data['device_id'];
        $user->password = bcrypt($data['password']);
        $user->u_type = $data['user_type'];

//        Parameters to be generated
        $user->qr_code_image = "test_qr_code.png";
        $user->access_code = MyHelper::generate_access_code();
        $user->save();
        $user = User::find($user->id);
        $result = Fractal::item($user, new UserTransformer)->getArray();
        if (!empty($result['data'])) {
            $result['status'] = TRUE;
            $result['message'] = 'Success';
        } else {
            $result['status'] = FALSE;
            $result['message'] = 'Failed';
        }
    } catch (\Exception $e) {
        $result['status'] = FALSE;
        $result['message'] = 'Failed';
    }
    return $result;
}

您可以使用
illumb\Support\Facades\Validator
验证API中的请求:

 $validator = Validator::make($request->all(), [
        "device_id" => "required|unique:devices",
        "user_type" => "required",
        "password"  => "required",
    ]);

    if ($validator->fails()) {
        return response(
            $validator->errors(),
            400
        );
    }

我用下面的方法找到了解决方案

$data = $request->data;
        $data = json_decode($data, TRUE);
        $status = 200;
        $validator = Validator::make(
                        array(
                    "goal_title" => $data['goal_name'],
                    "family_id" => $data['family_id'],
                    "goal_frequency" => $data['goal_frequency'],
                        ), array(
                    "goal_title" => "required|regex:/(^[A-Za-z0-9 ]+$)+/|:family_goals",
                    "family_id" => "required",
                    "goal_frequency" => "required:goal_frequencies",
                        )
        );

请出示您的控制器代码。