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

I have case user upload CSV/XLSX file in my website and convert to JSON. I want json request to insertBatch with Validation first

Example JSON :
Code:
[
    {
        "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
    }
]

My Controller :
PHP Code:
    public function createBatch()
    {
        $this->request->setHeader('Content-Type''application/json');

        $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->withRequest($this->request)->run()) {
            // insertBatch here
        } else {
            $response = [
                'success'  => false,
                'status'  => 400,
                'messages' => 'Validation data benefit group failed!',
                'validation' => $this->validation->getErrors(),
            ];
    
            
// Result
            return $this->respond($response400);
        }
    

and want make array data to insertBatch like
PHP Code:
$data = [
    [
        "benefitgroup_id" => "IP",
        "benefitgroup_name" => "Inpatient",
        "benefitgroup_gender" => "All",
        "benefitgroup_description" => "Rawat Inap",
        "benefitgroup_created_by" => 1,
        "benefitgroup_modified_by" => 1,
    ],
    [
        "benefitgroup_id" => "OP",
        "benefitgroup_name" => "Outpatient",
        "benefitgroup_gender" => "All",
        "benefitgroup_description" => "Rawat Jalan",
        "benefitgroup_created_by" => 1,
        "benefitgroup_modified_by" => 1,
    ],
];

$result $this->my_model->saveDataBatch($data); 
Reply


Messages In This Thread
Validation more data by JSON request - CI 4 - by flux1on - 07-06-2022, 02:23 AM



Theme © iAndrew 2016 - Forum software by © MyBB