Welcome Guest, Not a member yet? Register   Sign In
form data validation and data value variable
#1

I have this controller for insert data:

PostController:
PHP Code:
    public function store(){
        if($this->request->getMethod('POST'))
        {

            $rules = [
                'title' => ['label' => lang('Posts.title'), 'rules' => 'required|min_length[10]|max_length[500]'],
                'summary' => ['label' => lang('Posts.summary'), 'rules' => 'required|min_length[10]|max_length[250]'],
                'category_id' => ['label' => lang('Posts.category'), 'rules' => 'required|integer'],
            ];

            if (! $this->validate($rules))
            {
                return redirect()->back()->withInput()->with('errors'$this->validator->getErrors());
            }

            $image $this->request->getPost('post_image_id');
            $imageModel = new ImageModel();
            $imagePath $imageModel->select('original_image')->find($image);

            $data = array(
                'title' => $this->request->getPost('title'),
                'content' => $this->request->getPost('content'),
                'meta_keywords' => $this->request->getPost('meta_keywords'),
                'meta_description' => $this->request->getPost('meta_description'),
                'reference' => $this->request->getPost('reference'),
                'reference_link' => $this->request->getPost('reference_link'),
                'image' => $imagePath,
                'image_caption' => $this->request->getPost('image_caption'),
                'image_external_url' => $this->request->getPost('image_external_url'),
                'category_id' => $this->request->getPost('category_id'),
                'post_type' => 'post',
                'author_id' => '1',
                'status' => $this->request->getPost('status'),
            );

            $insertPost $this->postModel->insert($data);
         } 

First Question: this method is true for handle form data Or I need to add validation into Model(protected $validationRules) and create function in model for insert data?!

Seconds Question: data form value variable in Controller? Or in Model? example:
PHP Code:
            $data = array(
                'title' => $this->request->getPost('title'),
                'content' => $this->request->getPost('content'),
                'meta_keywords' => $this->request->getPost('meta_keywords'),
                'meta_description' => $this->request->getPost('meta_description'),
                'reference' => $this->request->getPost('reference'),
                'reference_link' => $this->request->getPost('reference_link'),
                'image' => $imagePath,
                'image_caption' => $this->request->getPost('image_caption'),
                'image_external_url' => $this->request->getPost('image_external_url'),
                'category_id' => $this->request->getPost('category_id'),
                'post_type' => 'post',
                'author_id' => '1',
                'status' => $this->request->getPost('status'),
            ); 

My Mean is what is best way to work with form data value.
Reply
#2

In my opinion, data validation and getting data form values should be done in the controller, and keep the model only for database operations. But it would make sense to define the validation rules in the model so you can use the same validation rules in different controller functions.
CodeIgniter 4 tutorials (EN/FR) - https://includebeer.com
/*** NO support in private message - Use the forum! ***/
Reply




Theme © iAndrew 2016 - Forum software by © MyBB