#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:
Тупой я, я пытался выяснить, что не так с кодом все это время, когда это просто простая проблема .. у меня есть две модели с одинаковым именем файла (проект резервного копирования), и я слепо редактирую файл модели, который находится внутри проекта резервного копирования..
Возможно, для будущих читателей, ищущих ответ, не забудьте проверить путь к папке для вашего файла модели, вы можете совершить ту же ошибку, что и я.