codeigniter - 如何在codeigniter表单验证中使用助手的回调?
问题描述
我在控制器中的表单验证代码是,
$this->form_validation->set_rules("name", "Name", "trim|callback_custom_validation");
if ($this->form_validation->run() !== FALSE) {}
我的帮助代码是,
function custom_validation($str) {
// validation logic
}
如果我将此custom_validation
功能移动到控制器,那么它正在工作,但它不能作为助手工作。我需要从控制器和模型中调用这个函数,所以我正在使用助手。那么如何从助手调用呢?
解决方案
有两种方法可以做到这一点。
您应该在 application/helpers 文件夹中创建一个帮助文件,并将函数放在帮助文件中。然后在控制器中加载帮助文件。
custom_validation.php:
function custom_validation($str) {
// validation logic
}
内部控制器:
$this->load->helper('custom_validation');
您还可以扩展 Form_validation 库。
创建一个文件:application/libraries/MY_Form_validation.php
<?php
class MY_Form_validation extends CI_Form_validation {
public function custom_validation($str) {
// validation logic
}
}
然后将其加载为正常验证:
$this->form_validation->set_rules('name', 'Name', 'required|custom_validation');
推荐阅读
- javascript - 如何从 HTML 创建 excel 文件
- asp.net-core-mvc - 如何在 asp.net-mvc-core 中的 asp-items 的 ViewBag 下拉列表中显示多个字段
- python - 如何创建 Matplotlib 小提琴图
- python - 动画轮廓和散点图
- sql-server - 每个 SQL select 语句都以文本格式生成
- datatables - 响应式数据表中的数据表父控件
- angular - AddThis 在 Angular 6/7 项目中不起作用
- php - 类 App\Http\Controllers\Community/CommunityContoller 不存在
- java - Java 8:DateTimeFormatter 不根据语言环境翻译时区
- mysql - 在 VB.NET 中,调用 conn.close 或 conn.dispose 甚至使用 USING 后 MySQL 连接不会关闭