0

管理者モデレーターとしてサイトをルーティングしました。つまり、Authコンポーネントを使用すると、セッションがAuth->Admin->id&Auth->Moderator->idそしてAuth->User->idこのように作成されます。

今、私は$this->Auth->userなぜnullを返す関数を試しましたか??

私が知っているように、$this->Auth->userセッションを返します。

私は伝統的な方法を知ってい$this->Session->reads('Auth.Admin')ますが、Auth-> user関数を使用したいのですが、なぜ機能しないのですか

4

2 に答える 2

1

これを使用して、ユーザー セッション データを取得してください。

public function login() {
 if ($this->request->is('post')) {
     if ($this->Auth->login()) {
    $this->redirect($this->Auth->redirect());
     } else {
    $this->Session->setFlash(__('Invalid username or password, try again'));
     }
 }
}

public function index() {
    pr($this->Auth->User());
}
于 2013-11-01T11:40:41.683 に答える
0
        auth_helper:<?php
        defined('BASEPATH') OR exit('No direct script access allowed');

        if ( ! function_exists('auth'))
        {
            function auth()
            {
                $CI =& get_instance();
                $CI->load->model('Auth_model');
                return $CI->Auth_model;
            }

            function Adminauth($admin_id) 
            {
                if($admin_id == false)
                {
                    redirect('login');
                }
            }
        }
    auth_model:
    <?php
    if (!defined('BASEPATH')) {
        exit('No direct script access allowed');
    }

    class Auth_model extends CI_Model {
        private $user = null;
        private $ci = null;

        public function __construct() {
            parent::__construct();
            $CI =& get_instance();
            $this->ci = $CI;
        }

        public function get($name, $default = null){
            if ($this->ci->session->has_userdata('auth.Adminuser_id')) {
                 $user_id = $this->ci->session->userdata('auth.Adminuser_id');
                 $this->user = $this->db->query("SELECT * FROM members WHERE u_id=? LIMIT 1", array($user_id))->row();
            }

            return !empty($this->user) ? $this->user->u_name : $default;
        }
        public function is_logged(){
            return $this->ci->session->has_userdata('auth.Adminuser_id');
        }
        public function login($user_id){
            return $this->ci->session->set_userdata('auth.Adminuser_id', $user_id);
        }
        public function logout(){
            return $this->ci->session->unset_userdata('auth.Adminuser_id');
        }
    }
于 2016-10-25T09:00:37.993 に答える