如何通过仅在类中声明在每种方法中使用会话变量

时间:2018-10-15 10:20:16

标签: codeigniter session

我想在类的每个函数中设置会话变量。如果未在任何功能中设置会话,则应将其重定向到首页

setUsersList() {
  $('ul').on('click', 'li', function (e) {
    if (e.ctrlKey || e.metaKey) {
      $(this).toggleClass("selected");
    } else {
      $(this).addClass("selected").siblings().removeClass('selected');
    }
  });

    $('.users-list').sortable({
        items: "li:not(.to-resize)",
        connectWith: '.users-list',
        placeholder: 'placeholder',
        helper: function (e, item) {
            var elements = item.parent().children('.selected:not(.to-resize)').clone(); //there are other elements in between which I don't want to select, that's why I'm using 'not' selector, elements gives the proper and desired output of all selected items
            item.data('multidrag', elements).siblings('.selected').remove();
            var helper = $('<li/>');
            return helper.append(elements);
        },
        stop: function (e, ui) {
            var elements = ui.item.data('multidrag');
            ui.item.after(elements);
  }
    });
    $('.users-list').disableSelection();
}

2 个答案:

答案 0 :(得分:0)

为此使用constructor。在OOP中,构造函数是所调用的任何类的第一个方法。因此,您可以做的是,创建一个构造函数并检查会话变量。如果变量存在,则什么也不做,它将自动调用该函数。如果会话变量不存在,则将用户重定向到主页。

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class App_config extends CI_Controller {
    function __construct(){
        parent::__construct();
        if(!$this->session->userdata('name')){
            redirect('/home');
        }
    }

    public function masteradmin(){      
        $data = $this->session->all_userdata();
        $this->load->view('user/masteradmin',array('data'=>$data));
    }

    public function reseller(){

    }
}
?>

答案 1 :(得分:0)

在核心文件夹(如MY_Controller.php)中创建超类 然后您可以定义会话,然后在每个控制器扩展中调用该超类。例如:

class App_config extends MY_Controller {
}