CodeIgniter global variable

后端 未结 4 811
无人共我
无人共我 2021-02-01 10:08

I am using $data in all my views $this->load->view(\'my_view\', $data);

I have also autoload a Controller following this guide Exten

相关标签:
4条回答
  • 2021-02-01 10:31

    I used a helper function to call a global function!

    eg.

    function get_user($userid){
        $CI =& get_instance();
    
        $query = $CI->db->get_where('users', array('id' => $userid), 1, 0);
        foreach ($query->result() as $row){
            // Return a object with userdata!
            return $row;
        }
    }
    

    Now I have access to my userdata everywhere..

    0 讨论(0)
  • 2021-02-01 10:32

    I ran into a similar problem earlier today. I found that an easier way, rather than globals, was to use constants. You can define a constants file that will load from your index.php file:

    // Include additional constants
    $defines_file = 'includes/defines.php';
    if (file_exists($defines_file))
    {
        require_once($defines_file);
    } 
    

    Then you can add your constants to the defines.php file:

    define(MY_CONSTANT,'my constant info');
    

    This way they will be available in any file throughout the system either directly: echo MY_CONSTANT; or you can assign them to variables.

    I decided this way would be easier for me as I would only have 1 location to go to when/if I needed to change the constants.

    More: http://codeigniter.com/forums/viewthread/56981/#280205

    0 讨论(0)
  • 2021-02-01 10:39

    Rather than making the view data global, I'd recommend using HMVC to build a module to produce this sidebar view. HMVC is a nice clean way of coding partial views.

    0 讨论(0)
  • 2021-02-01 10:42

    1: Create MY_Controller in application/libraries with following:

    class MY_Controller extends Controller {  
      var $data;      
      //constructor function              
    }
    

    2: Replace Controller to MY_Controller in all your controller files and load views with $this->data

    class Contact extends Controller { //to.. } 
    
    class Contact extends MY_Controller { 
     $this->load->view('contact_view', $this->data);
    }
    

    this way you can perform default functions that are applicable for whole site in MY_Controller like loading settings.

    0 讨论(0)
提交回复
热议问题