Welcome Guest, Not a member yet? Register   Sign In
Validation more data by JSON request - CI 4
#3

(This post was last modified: 07-07-2022, 07:46 PM by flux1on.)

If example input reading file Excel with SheetJS

Result :
```
[
    {
        "params_id": "IP",
        "params_name": "Inpatient",
        "params_gender": "All",
        "params_description": "Rawat Inap",
        "params_created": 1
    },
    {
        "params_id": "OP",
        "params_name": "Outpatient",
        "params_gender": "All",
        "params_description": "Rawat Jalan",
        "params_created": 1
    }
]
```

And send request result above with params_json POST, get var_dump($this->request->getVar()) below

```
array(1) {
["param_json"]=>
string(364) "[
{
"params_id": "IP",
"params_name": "Inpatient",
"params_gender": "All",
"params_description": "Rawat Inap",
"params_created": 1
},
{
"params_id": "OP",
"params_name": "Outpatient",
"params_gender": "All",
"params_description": "Rawat Jalan",
"params_created": 1
}
]"
}
```

What sample validation correct to result above and insert it to database with InsertBatch?


Currently i try
Code:
$dataValidate = json_decode($this->request->getPost('params_json'), true);
and get array below

Code:
array(2) {
[0]=>
array(5) {
["params_id"]=>
string(2) "IP"
["params_name"]=>
string(9) "Inpatient"
["params_gender"]=>
string(3) "All"
["params_description"]=>
string(10) "Rawat Inap"
["params_created"]=>
int(1)
}
[1]=>
array(5) {
["params_id"]=>
string(2) "OP"
["params_name"]=>
string(10) "Outpatient"
["params_gender"]=>
string(3) "All"
["params_description"]=>
string(11) "Rawat Jalan"
["params_created"]=>
int(1)
}
}

And validate with

PHP Code:
$validationRules  = [
            '*.params_id'        => 'required|string|max_length[3]|is_unique[sm_benefit_group.benefitgroup_id]',
            '*.params_name'      => 'required|string|max_length[100]',
            '*.params_gender'    => 'required|validBenefitGroupGender',
            '*.params_description'=> 'required|string|max_length[255]',
            '*.params_created'    => 'required|integer',
        ];

        $validationMessages = [
            '*.params_id' => [
                'required' => 'ID must be required',
                'string' => 'ID must be string',
                'max_length' => 'ID must be maximum 3 length',
                'is_unique' => 'ID already exists, try another unique',
            ],
            '*.params_name' => [
                'required' => 'Name must be required',
                'string' => 'Name must be string',
                'max_length' => 'Name must be maximum 100 length',
            ],
            '*.params_gender' => [
                'required' => 'Gender Type must be required',
                'validBenefitGroupGender' => 'Gender Type must be string and between ("All","M","F")',
            ],
            '*.params_description' => [
                'required' => 'Description must be required',
                'string' => 'Description must be string',
                'max_length' => 'Description must be maximum 255 length',
            ],
            '*.params_created' => [
                'required' => 'Created By must be required',
                'integer' => 'Created By must be integer',
            ],
        ];

        $this->validation->setRules($validationRules$validationMessages);

        if ($this->validation->run($dataValidate)) {
            // InsertBatch here
        } else {
            $response = [
                'success'  => false,
                'status'  => 400,
                'messages' => 'Validation data benefit group failed!',
                'validation' => $this->validation->getErrors(),
            ];
    
            
// Result
            return $this->respond($response400);
        

Still not valid

Code:
{
    "success": false,
    "status": 400,
    "messages": "Validation data benefit group failed!",
    "validation": {
        "*.params_id": "ID must be required",
        "*.params_name": "Name must be required",
        "*.params_gender": "Gender Type must be required",
        "*.params_description": "Description must be required",
        "*.params_created": "Created By must be required"
    }
}
Reply


Messages In This Thread
RE: Validation more data by JSON request - CI 4 - by flux1on - 07-07-2022, 06:49 PM



Theme © iAndrew 2016 - Forum software by © MyBB