私はコードイグナイターとMVCPHPに不慣れで、オンラインリソースを使用して基本的なログインシステムを作成し、それが機能します。現在、学習するためにそれを改善しようとしています...
私のモデル:
function validate(){
$this->db->where('Email', $this->input->post('email'));
$this->db->where('Password', sha1($this->input->post('password')));
$query = $this->db->get('admin_users');
if($query->num_rows == 1){
return true;
}
}
function get_admininfo(){
$this->db->where('Email', $this->session->userdata('email'));
$query = $this->db->get('admin_users');
return $query->result();
}
あるユーザーが、通知などのアバターのために、情報の一部を取得してセッションに保存することを確認しました。
私のコントローラーは次のようになります。
function validate_credentials(){
//load the adminship model and then the function validate within it.
$this->load->model('adminship_model');
$query = $this->adminship_model->validate();
// If the admin user successfully validated.
if($query){
$admininfo = $this ->adminship_model->get_admininfo();
$data = array(
'email' => $this->input->post('email'),
'username' => $this->$admininfo['username'],
'is_logged_in' => true
);
$this->session->set_userdata($data);
redirect('dashboard_controller/dashboard');
}else{
$this->index();
}
}
ダッシュボードコントローラーで次のように設定しました。
$data['email'] = $this->session->userdata('email');
$data['email'] = $this->session->userdata('username');
そしてそれをビューに渡し、$ emailをエコーするとメールが届きますが、ユーザー名がプルされない場合、次のエラーが発生します。
メッセージ:未定義のインデックス:ユーザー名
この行:
'username' => $this->$admininfo['username'],
モデルから間違った方法で情報を取得していることはわかっています。誰かが私を正しい方向に向けてくれませんか。