Php 如何使用codeigniter';这是唯一的工作
我已经检查了codeigniter的文档,但没有关于它的特殊页面或信息。我只想知道它是怎么工作的。我有这个代码,它正在工作!,我想知道的是,在无法访问任何模型或数据库的情况下,_unique是如何工作的。codeigniter中是否有任何类是唯一的?是否使用它根据表名和提供给它的字段等信息检索数据? 这就是代码: 视图中的电子邮件输入:Php 如何使用codeigniter';这是唯一的工作,php,codeigniter,Php,Codeigniter,我已经检查了codeigniter的文档,但没有关于它的特殊页面或信息。我只想知道它是怎么工作的。我有这个代码,它正在工作!,我想知道的是,在无法访问任何模型或数据库的情况下,_unique是如何工作的。codeigniter中是否有任何类是唯一的?是否使用它根据表名和提供给它的字段等信息检索数据? 这就是代码: 视图中的电子邮件输入: echo form_input('email_address', set_value('email_address'), 'placeholder="Email
echo form_input('email_address', set_value('email_address'), 'placeholder="Email"');
以及控制器:
function create_member()
{
$this->load->library('form_validation');
// field name, error message, validation rules
$this->form_validation->set_rules('email_address', 'Email Address', 'trim|required|valid_email|is_unique[membership.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('password2', 'Password Confirmation', 'trim|required|matches[password]');
$this->form_validation->set_error_delimiters('<div class="alert alert-error"><a class="close" data-dismiss="alert">×</a><strong>', '</strong></div>');
if($this->form_validation->run() == FALSE)
{
$this->load->view('pages/signup_form');
}
else
{
$this->load->model('admin/Users_model');
if($query = $this->Users_model->create_member())
{
$this->load->view('pages/signup_successful');
}
else
{
$this->load->view('pages/signup_form');
}
}
}
您可以在以下位置找到此函数的源代码:
system/libraries/Form_validation.php
,它似乎是从系统类调用的唯一实例is_unique
代码:
“函数sscanf()是printf()的输入模拟。sscanf()从字符串str读取,并根据指定的格式对其进行解释,这在sprintf()的文档中有描述。”-
正在运行sscanf()以将数据库与表名分开
然后,函数检查数据库连接是否存在,选择参数中提供的表,并搜索该表以返回该条目是否存在。使用语法为布尔表达式的三元运算符(?:)?如果正确:如果错误代码>
希望有帮助
function create_member()
{
$new_member_insert_data = array(
'email' => $this->input->post('email_address'),
'user_name' => $this->input->post('username'),
'pass_word' => md5($this->input->post('password'))
);
$insert = $this->db->insert('membership', $new_member_insert_data);
return $insert;
}
/**
* Is Unique
*
* Check if the input value doesn't already exist
* in the specified database field.
*
* @param string $str
* @param string $field
* @return bool
*/
public function is_unique($str, $field)
{
sscanf($field, '%[^.].%[^.]', $table, $field);
return isset($this->CI->db)
? ($this->CI->db->limit(1)->get_where($table, array($field => $str))->num_rows() === 0)
: FALSE;
}