Не удается показать сообщение проверки обратного вызова в модели - PullRequest
1 голос
/ 02 августа 2020

Я использую codeigniter 3 для создания простой формы входа, но мое сообщение проверки обратного вызова не сработало. Вот мой код:

LoginForm_model. php

class LoginForm_model extends CI_Model 
{
    private $username;
    private $password;

    protected $validationRules = [
        'username' => 'required|callback_username_exist',
        'password' => 'required',
    ];

    public function username_exist($str)
    {
        $this->load->model('Reseller_model', 'reseller');
        $reseller = $this->reseller->findOne(['username' => $this->input->post('LoginForm')['username']]);
        if (!empty($reseller)) {
            return true;
        }
        $this->form_validation->set_message('username_exist', 'Username tidak ditemukan');
        return false;
    }

    public function validate() {
        $modelName = explode("_", get_class($this));
        foreach($this->validationRules as $field => $validationRule) {
            $this->form_validation->set_rules($modelName[0].'['.$field.']', $this->getLabels($field), $validationRule);
        }

        return $this->form_validation->run();
    }
}

Я использую эту модель в своем контроллере для проверки ввода формы входа

Добро пожаловать. php

class Welcome extends CI_Controller {

    public function index()
    {
        $this->load->model("Loginform_model", "loginform");

        if (NULL !== $this->input->post('LoginForm')) {

            if ($this->loginform->validate()) {
                echo "All Set!";
            }
        }

        $this->load->view('login');
    }
}

Проверка обратного вызова работает, но сообщение выглядит следующим образом:

Невозможно получить доступ к сообщению об ошибке, соответствующему ваше имя поля Имя пользователя. (username_exist)

Проверка обратного вызова работает, если я помещаю функцию username_exist в свой контроллер. Разве мы не можем сделать это в модели? Хочу сделать контроллер максимально чистым. Пожалуйста, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...