我在 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/