将uri段传递给codeIgniter中的库

时间:2012-08-06 06:18:18

标签: php codeigniter

我正在开发CodeIgniter项目.. 我想将uri段从控制器传递到我自己的库。 我无法做到这一点..我尝试使用会话,但它不会工作。请帮助我..

这是我的控制器,

<?php
class insertdata extends CI_Controller{

function __construct(){
    parent::__construct();
}

//#############################################################################

function updateprop(){

    $this->load->library('DataEntryForms_update');

            //get the uri segment
    $id = $this->uri->segment(3);

       //setting the session data
       $this->session->set_userdata('id',$id);

     $params [] = $this->uri->segment(3);


    $form_name = $this->input->post('function_name');
    switch ($function_name){

        case 1:

            $this->dataentryforms_update->function1();

            break;
        case 2:
            $this->dataentryforms_update->function2();
            break;

       }            
     }  
  }

这是我的图书馆......

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

 class DataEntryForms_update{
protected  $CI;

 #######################################################
  //gets the CI instance    
  function __construct(){

$this->CI =& get_instance();
  }


 #############################################################

   function function1($params){

 $this->params = $params;
 print_r ($this->params);

 $project_id = $this->CI->session->userdata('id');
 echo $project_id;
 die();
    }   

}

在库中我试图获取会话数据,但我得到会话数据'id'为0 ... 当我使用uri-&gt; segemnt(2)时。它会得到正确的值,但是uri-&gt;段(3)不起作用...请帮帮我

2 个答案:

答案 0 :(得分:0)

要访问库中的CodeIgniter原生资源,请使用get_instance()功能。

您必须将会话库加载到新创建的库中。您必须将会话库包含在您自己的库中。您可以将以下代码用于您尝试访问会话变量的函数中。

$CI =& get_instance();

$CI->load->helper('url');
$CI->load->library('session');

This post肯定会帮助您利用图书馆中的会话。

答案 1 :(得分:0)

在文件夹application \ libraries \ MyClass.php

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

class MyClass {
    public function myfunction() {
        $CI =& get_instance();
        $CI->load->helper('url');
        $CI->load->library('session');
        // do something else below
    }
}
?>
希望它有效! :)