php - codeigniter 中的 Is_unique 表单验证

标签 php mysql codeigniter

我在 CMS 后端工作,我使用 Codeigniter 来帮助开发。

所以,我正在处理用户表。例如,我允许后端管理员插入、更新用户信息。

首先有一个用户表,每一行都有一个“编辑”按钮。单击“编辑”按钮后,会出现该特定用户的表单。

例如

UserName: Mr. ABC
Email: abc@a.com
Password: 1234

由于需要保证用户名唯一,邮箱唯一,所以需要使用isUnique验证

但是,问题来了,“只有用户修改数据,然后添加is Unique规则”如何处理?因为如果我不更改用户名,那么我将通过原始名称进行检查,并且无法通过is Unique检查,谢谢

$this->form_validation->set_rules('name', 'Username', 'trim|required|min_length[4]|is_unique[admin.username]');   

最佳答案

您无论如何都要将用户 ID 发送到服务器以进行更新,您可以运行查询来检查该用户名/用户 ID 组合是否存在。如果是,则表示该用户没有更改。如果没有,您需要进一步检查 is_unique。

如果您坚持使用 form_validation,那最好在回调中实现。

基本上在你的 Controller 中你会有两个函数

function form_grabber()
{
//get your form and stuff. run this line : 
$this->form_validation->set_rules('name', 'Username', 'call_back_isUserNameNotChanged[userID]'); 
//assuming userID comes from the form aswell.
}

function isUserNameNotChanged($username,$userID)
{
//query DB, return true if match exists or false if it doesn't
}

关于php - codeigniter 中的 Is_unique 表单验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24076750/

相关文章:

mysql - 基于是或否问题的 SQL SELECT 查询

php - codeigniter 网站显示 404 错误

php - 匹配 MySQL 查询中的数组值

javascript - 更新 MYSQL 表给出成功消息,但不更新表

php - Selenium 导出测试用例,因为我的 Selenium IDE 1.2.0 中缺少 PHP-phpunit?

MySQL自连接引用另一个表

node.js - Codeigniter 还是 Node js?

Codeigniter 和亚马逊 SES : error 554

php - PHP 和 MySQL 之间的时区差异

php - 多个mysql在一个查询中选择,然后分别访问它们