Использование правил проверки в моделях для проверки формы Codeigniter 4

#model-view-controller #model #controller #codeigniter-4

#модель-представление-контроллер #Модель #контроллер #codeigniter-4

Вопрос:

Итак, у меня есть эти переменные $skipValidation (установленные специально для FALSE ), $validationRules , $validationMessages установленные в соответствии с этой документацией

но, хоть убейте, я не могу понять, что запускает этот $validationRules триггер, я просто предполагаю, что $skipValidation это означало, что Codeigniter-4 уже меня охватил (автоматически проверяет ввод перед выполнением любых запросов)..

Я даже вставил $UserModel->errors() , если правила проверки обнаружат ошибку

 if($userModel->insert($data) === false) {
  return view('form', ['validation' => $userModel->errors()])
} else {
  redirect()->to('home');
}
 

У меня required and min_length[] применяются эти правила $validationRules , но модель просто пропускает правила проверки и сразу вставляет их в базу данных, делая $validationRules бесполезными..

Есть идеи, как заставить ValidationRules в моделях работать? или как это должно использоваться? Я продолжаю перебирать документацию, потому что не знаю ничего лучше.

Комментарии:

1. Измените код на $UserModel->insert($data) === false на $UserModel-> save($data) === false. Это должно вызвать ошибки.

2. спасибо за ваш ответ и нет, все еще пропускает проверку.. я предполагаю, что это неразрешенная ошибка, поскольку я получил исключение mysqli вместо безопасного возврата сообщения об ошибке в переменную с помощью $UserModel-> errors()

Ответ №1:

Тупой я, я пытался выяснить, что не так с кодом все это время, когда это просто простая проблема .. у меня есть две модели с одинаковым именем файла (проект резервного копирования), и я слепо редактирую файл модели, который находится внутри проекта резервного копирования..

Возможно, для будущих читателей, ищущих ответ, не забудьте проверить путь к папке для вашего файла модели, вы можете совершить ту же ошибку, что и я.