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($response, 400);
}
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"
}
}