我试图阻止用户创建相同的用户名。我真正的问题是如何从控制器中的模型循环数据列表。也许我们知道如何通过使用这个来循环它 - > data['user']
我们可以致电$user
。但我们怎么能在控制器层做到这一点。
这是我的代码
$username = strtolower($this->input->post('name'));
$fixUsername = str_replace(" ",".",$username);
$counter = 1;
$list[] = $this->addusermodel->getAllUsername();
for($i=0;$i<sizeof($list);$i++) {
if($list[$i] == $fixUsername) {
$counter = 0;
}
}
if($counter == 0) {
$data['result'] = "The username has already been taken";
$this->load->view('adduserview',$data);
} else {
$data = array(
'Nama' => $this->input->post('name'),
'Username' => $fixUsername."@praba",
'Password' => md5($this->input->post('password')),
'created' => date("Y-m-d h:i:sa"),
'createdBy' => $createdBy,
'lastModified' => date("Y-m-d h:i:sa"),
'lastModifiedBy' => $lastModifiedBy
);
$this->addusermodel->saveUser($data);
//$data['Username'] = $listName;
$data['message'] = "New user successfully added.";
$data['messageContent'] = "The username: ".$fixUsername."@praba". $counter;
$this->load->view('successpageview',$data);
//redirect('successpageview','refresh');
}
function getAllUsername() {
$this->db->select('Username');
$this->db->from('tbluser');
$query = $this->db->get();
return $query->result_array();
}
答案 0 :(得分:1)
我认为更好的方法是在模型中创建另一个函数,该函数按ID
或email
或其他唯一字段搜索数据库。如果函数返回row
- 那么用户就存在。如果它返回nothing
- 则添加新用户。