如何使用“;is_unique”;在Codeigniter和数据库中是一个mongodb


How to use "is_unique" in Codeigniter and database is an mongodb

如何在"JSON"中使用户名在验证和输出中唯一。实际上,我正在使用Codeigniter构建一个应用程序,并将MongoDB作为数据库。我不知道"is_unique"是否在mongodb中工作,但我试过了,但没有工作。

控制器:

公共函数create_customer(){

 $this->load->helper('form');
$this->load->library('form_validation');
if($this->input->post('username') != $original_value) {
    $is_unique =  '|is_unique[customer.username]'
} else {
     $is_unique =  ''
}
// field name, error message, validation rules
$this->form_validation->set_rules('first_name', 'Name', 'trim|required');
$this->form_validation->set_rules('last_name', 'Last Name', 'trim|required');
$this->form_validation->set_rules('email_address', 'Email Address', 'trim|required|valid_email');
$this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]|xss_clean'.$is_unique);
$this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');
$this->form_validation->set_rules('phone_number', 'Phonenumber', 'trim|required|numeric|min_length[10]|max_length[10]');
$this->form_validation->set_rules('password2', 'Password Confirmation', 'trim|required|matches[password]');
    if($this->form_validation->run() == FALSE)
{   
    header('Content-Type: application/json');
    echo json_encode(array('success' => 'FALSE')); 
}   
else
{
    $this->load->model('general/customer');
    $new_customer[CUSTOMER_FIRST_NAME]=$this->input->post('first_name');
    $new_customer[CUSTOMER_LAST_NAME]=$this->input->post('last_name');
    $new_customer[CUSTOMER_EMAIL]=$this->input->post('email_address');
    $new_customer[CUSTOMER_USERNAME]=$this->input->post('username');
    $new_customer[CUSTOMER_PHONE]=$this->input->post('phone_number');
    $new_customer[CUSTOMER_PASSWORD]=$this->input->post('password');
    $this->customer->is_unique();
    $query = $this->customer->add($new_customer);
    header('Content-Type: application/json');
    echo json_encode(array('success' => 'TRUE'));
}   
} 

型号:

public function is_unique()
{
    $query = $this->mongo_db->select('username');
    $result = mongo_db($query);
    $count = mongo_db_num_rows($result);
    if ($count>0) {
    echo 'Sorry! This Username already exists!';
    } 
    else
    {
     $insert = $this->mongo_db->insert(CUSTOMER, $new_customer);
     return $insert;
    }

}

这是我的密码。我想在应用程序中保持用户名的唯一性。请帮我完成申请。

控制器:

公共函数create_customer()

{
    $this->load->library('form_validation');
    $this->form_validation->set_rules('first_name', 'Name', 'trim|required');
    $this->form_validation->set_rules('last_name', 'Last Name', 'trim|required');
    $this->form_validation->set_rules('email_address', 'Email Address', 'trim|required|valid_email');
    $this->form_validation->set_rules('username', 'Username', 'trim|required|min_length[4]');
    $this->form_validation->set_rules('password', 'Password', 'trim|required|min_length[4]|max_length[32]');
    $this->form_validation->set_rules('phone_number', 'Phonenumber', 'trim|required|numeric|min_length[10]|max_length[10]');
    $this->form_validation->set_rules('password2', 'Password Confirmation', 'trim|required|matches[password]');
    if($this->form_validation->run() == FALSE)
    {   
        header('Content-Type: application/json');
        echo json_encode(array('success' => 'FALSE')); 
    }   
    else
    {
        $this->load->model('general/customer');
        $new_customer[CUSTOMER_FIRST_NAME]=$this->input->post('first_name');
        $new_customer[CUSTOMER_LAST_NAME]=$this->input->post('last_name');
        $new_customer[CUSTOMER_EMAIL]=$this->input->post('email_address');
        $new_customer[CUSTOMER_USERNAME]=$this->input->post('username');
        $new_customer[CUSTOMER_PHONE]=$this->input->post('phone_number');
        $new_customer[CUSTOMER_PASSWORD]=$this->input->post('password');
        if($this->customer->is_unique($new_customer[CUSTOMER_USERNAME]))
        { 
           $query = $this->customer->add($new_customer);
           header('Content-Type: application/json');
           echo json_encode(array('success' => 'TRUE'));
        }
        else
        {
           header('Content-Type: application/json');
           echo json_encode(array('success' => 'FALSE'));
        }
     }  
} 

型号:

function is_unique($username)
{
    $this->mongo_db->where(CUSTOMER_USERNAME, $username);
    $query = $this->mongo_db->get(CUSTOMER);
    return (count($query) == 0 ? true : false);
}

Ganesh UG上面的模型代码并不完全适用于我。

将返回语句更改为:

return (count((array)$query) == 0 ? true : false);