从模型codeigniter循环控制器中的数据

时间:2015-04-09 08:12:17

标签: php codeigniter

我试图阻止用户创建相同的用户名。我真正的问题是如何从控制器中的模型循环数据列表。也许我们知道如何通过使用这个来循环它 - > 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();
}

1 个答案:

答案 0 :(得分:1)

我认为更好的方法是在模型中创建另一个函数,该函数按IDemail或其他唯一字段搜索数据库。如果函数返回row - 那么用户就存在。如果它返回nothing - 则添加新用户。