我正在學習通過codeigniter進行簡單登錄,然後當我按下我的視圖上的「登錄」按鈕而沒有輸入用戶名和密碼字段時,出現類似 Missing argument 1 for C_login::login()
的錯誤。Codeigniter缺少參數1
這些都是我的控制器,我的IDE(netbeanPHP + CI框架)表示沒有錯誤
<?php
class C_login extends CI_Controller{
public function __construct() {
parent::__construct();
$this->load->model('m_login');
}
function index()
{
$this->form_validation->set_rules('username','trim|Username','required|exact_length[4]|xss_clean');
$this->form_validation->set_rules('password','trim|Password','required|min_length[4]|max_length[40]|xss_clean|callback_login');
if($this->form_validation->run() == false)
{
$this->load->view('login');
}
else
{
echo 'sukses validasi';
}
}
function login($password)
{
$username = $this->input->post('username');
$password = $this->input->post('password');
$jabatan = $this->input->post('jabatan');
$value = $this->m_login->cekpass($username,$password,$jabatan);
if($value)
{
return true;
}
else
{
return false;
}
}
}
?>
這裏是模型,我認爲我的模型沒有顯示任何錯誤
<?php
class M_login extends CI_Model{
public function __construct() {
parent::__construct();
}
function login ($username, $password, $jabatan)
{
$this->db->where('username',$username);
$this->db->where('password',$password);
$this->db->where('jabatan',$jabatan);
$value = $this->db->get('ms_user');
if($value->num_rows()>0)
{
return true;
}
else
{
return false;
}
}
}?>
從登錄函數中除去'$ password'參數,或給它一個默認值。 '函數登錄($ password = null)' –
@VladBalmos它顯示了另一個錯誤'調用未定義的方法M_Login :: cekpass()in controller/c_login line 35 – Cignitor
您在模型中將函數'login'命名爲'cekpass'。 –