2017-12-19 6 views
0

CodeIgniter에 프로젝트를 만들고 login 기능을 만들려고합니다.stdClass 유형의 객체를 배열 코드 지정자로 사용할 수 없습니다.

로깅 할 때 세션을 만들었고 로그인 한 사용자의 ID를 대시 보드로 전달했지만 오류가 발생했습니다. 여기 내 코드가있다.

내 컨트롤러 - 로그인 컨트롤러 ---------

class Login extends CI_Controller { 
    public function __construct() { 
     parent::__construct(); 
     $this->load->model('Auth_model','',true); 
    } 

    public function index(){ 
     $this->load->view('login/index'); 
    } 

    public function verifyUser(){ 
     $userArray = array(
      "email"=>$this->input->post("email"), 
      "password"=>$this->input->post("password"), 
     ); 
     $loggedUserData = $this->Auth_model->checkUser($userArray); 
     var_dump($loggedUserData); 
     if(count($loggedUserData)>0){ 
      // this is where we creating session 
      $this->session->set_userdata('loggedUserData',$loggedUserData); 
      //redirect('dashboard/index');  
     }else{ 
      redirect('login');   
     } 
    } 
    public function logout(){ 
     $this->session->sess_destroy(); 
     redirect('login'); 
    } 
} 

내 모델 - Auth_model ---------

class Auth_model extends CI_model{ 
    public function __construct() { 
     parent::__construct(); 
    } 
    public function checkUser($userArray){ 
     $loggedUserData = $this->db->select('id') 
      ->where('email',$userArray["email"]) 
      ->where('password',$userArray["password"]) 
      ->get('users'); 
     return $loggedUserData->row(); 
     // here we are going to check the user with db 
    } 
} 

내보기 - dashboard- -----------

class Dashboard extends CI_Controller { 
    public function __construct() { 
     parent::__construct(); 
     $currentUserData = $this->session->userdata(); 
     if(!isset($currentUserData["loggedUserData"])){ 
      redirect('/login/'); 
     } 
    } 
    public function index(){ 
     //$this->load->view('dashboard/index'); 
     echo $this->session->userdata['loggedUserData']['id']; 
    } 
} 

제발 도와주세요.

+0

https://stackoverflow.com/search?q=Cannot+use+object+of+type+stdClass+as+array – nogad

+0

무엇이 오류입니까? – BRjava

+0

stdClass 유형의 객체를 배열로 사용할 수 없습니다. –

답변

0

모델에서이 호출로 인해 오류가 발생했다고 생각합니다.

return $loggedUserData->row(); 

방법을 row() 반품 및 개체를,하지만 당신은 배열을합니다. 위의 내용을

return $loggedUserData->row_array(); 

으로 변경하면 오류가 사라집니다. 모든 것이 효과가 있다고 말할 수는 없습니다.

+0

내가 이걸 변경하면, 도와 주려고하는 모든 사람들에게 감사드립니다. –

+0

$ loggedUserData = $ this-> Auth_model-> checkUser ($ userArray); –

+0

$ loggedUserData = json_decode (json_encode ($ loggedUserData), True); –