我正在學習CI,因爲我們正在講話,並且我對你們有個快速的問題。我目前使用form_validation函數來幫助我進行一些快速驗證。這工作正常,但!如果我想驗證已經在使用的用戶名或電子郵件,我該怎麼做?Codeigniter表單驗證(mysql檢查)
我在猜測,我需要一個模型和一個方法來檢查用戶名或電子郵件是否已被使用。但我怎麼能結合form_validation錯誤消息給出的假/真結果?
我正在學習CI,因爲我們正在講話,並且我對你們有個快速的問題。我目前使用form_validation函數來幫助我進行一些快速驗證。這工作正常,但!如果我想驗證已經在使用的用戶名或電子郵件,我該怎麼做?Codeigniter表單驗證(mysql檢查)
我在猜測,我需要一個模型和一個方法來檢查用戶名或電子郵件是否已被使用。但我怎麼能結合form_validation錯誤消息給出的假/真結果?
更多關於它的CI中的驗證系統支持回調,這允許你擴展驗證類以滿足你的需要,例如:
在你的控制,改變「用戶名」的規則是:
$this->form_validation->set_rules('username', 'Username', 'callback_username_check');
然後在你的控制器,你可以添加一個功能叫做 「username_check」:
function username_check($str)
{
$this->load->model('your_model');
if ($this->your_model->checkUsername($str))
{
return true;
}
else
{
$this->form_validation->set_message('username_check', 'The username %s already exist');
return false;
}
而在你的型號中:
function checkUsername($username)
{
$this->db->where('username', $username);
$query = $this->db->get('users');
if ($query->num_rows() > 0){
return true;
}
else{
return false;
}
}
再見!!
比你需要使用自定義回調,這些是你自己寫的驗證函數。 您可以瞭解在codeigniter documentation
我做到了,但是當我這樣做,我只是得到一個空白頁面,但如果我刪除返回false,一切正常(但我沒有得到任何錯誤)上提交。 – Dexty 2011-05-31 21:09:04
你可以在這裏寫代碼嗎? – 2011-05-31 23:48:08
修好了,對不起。我在索引函數中有我的函數,看起來好像該睡覺了!無論如何感謝m8! – Dexty 2011-06-01 02:04:31