Welcome Guest, Not a member yet? Register   Sign In
how to call a model function into $validationRules
#1

this is not valid,
but then how to?

in model: 
Code:
protected  $validationRules = $this->SetRules();
public function SetRules()
    {
        $this->ConfigItem = new \App\Config\MyConfig\Sales();
        for ($i = 0; $i < $this->ConfigItem->nb_salesline; $i++) {
            $salesline_no = $i + 1;
           
            $rules["salesline_storage_{$i}"] = [
                'label' => lang('Site.message.storage') .  " {$salesline_no}",
                'rules' => "permit_empty|string|max_length[50]|required_with[salesline_item_{$i}]",
            ];
           
            $rules["salesline_item_{$i}"] = [
                'label' => lang('Site.message.item') . " {$salesline_no}",
                'rules' => "permit_empty|string|max_length[50]|required_with[salesline_quntity_{$i}]",
            ];

            $rules["salesline_quantity_{$i}"] = [
                'label' => lang('Site.message.quantity') . " {$salesline_no}",
                'rules' => "permit_empty|string|max_length[10]|required_with[salesline_storage_{$i}]",
            ];

        }
Reply
#2

(This post was last modified: 02-18-2022, 06:35 AM by kenjis.)

Set the property in the initialize() method.
https://codeigniter4.github.io/userguide...your-model
Reply
#3

Thank You to the answer!
That's the solution in the model:

Code:
    protected function initialize()
    {
        $this->validationRules = $this->SetRules();
    }
   
    protected function SetRules()
    {
        for ($i = 0; $i < config('MyConfig/Sales')->nb_salesline; $i++) {
            $salesline_no = $i + 1;
           
            $rules["salesline_item_{$i}"] = [
                'label' => 'Rules.salesline.item',
                'rules' => "permit_empty|string|max_length[50]|required_with[salesline_quantity_{$i}]",
            ];

            $rules["salesline_storage_{$i}"] = [
                'label' => 'Rules.salesline.storage',
                'rules' => "permit_empty|string|max_length[50]|required_with[salesline_item_{$i}]",
            ];
           
            $rules["salesline_quantity_{$i}"] = [
                'label' => 'Rules.salesline.quantity',
                'rules' => "permit_empty|decimal|max_length[10]|required_with[salesline_storage_{$i}]",
            ];

        }

        return $rules;
    }
Reply




Theme © iAndrew 2016 - Forum software by © MyBB