2

私は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-> segemnt(2)を使用した場合。正しい値を取得しますが、uri-> segment(3)が機能しませんでした...助けてください

4

2 に答える 2

0

ライブラリ内のCodeIgniterのネイティブリソースにアクセスするには、get_instance()関数を使用します。

新しく作成したライブラリにセッションライブラリをロードする必要があります。セッションライブラリを独自のライブラリに含める必要があります。セッション変数にアクセスしようとしている関数に次のコードを使用できます。

$CI =& get_instance();

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

この投稿は、ライブラリのセッションを活用するのに役立ちます。

于 2012-08-06T07:19:30.127 に答える
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
    }
}
?>

それがうまくいくことを願っています!:)

于 2015-02-09T03:22:11.300 に答える