CodeIgniter Polska Forum

Witamy na polskiej stronie wsparcia CodeIgniter. Nie zapomnij odwiedzić naszej strony głównej

Nie jesteś zalogowany na forum.

#1 14-05-2013 09:57:36

MaxyBlack
Użytkownik
Data rejestracji: 14-05-2013
Liczba postów: 43

Problem z tworzeniem nowej biblioteki

Witam, próbuje utworzyć nową bibliotekę dzięki której mógłbym sprawdzać czy użytkownik ma uprawnienia do danej funkcji. Jednak gdy próbuje załadować do biblioteki bibiotekę databaseotrzymuję error.

class Perm
{

    public function __construct()
    {
        $CI = &get_instance();
        $CI -> load -> library('database');
    }

}

Ostatnio edytowany przez renholder (14-05-2013 12:16:26)

Offline

#2 14-05-2013 12:15:21

renholder
Administrator
Data rejestracji: 06-09-2012
Liczba postów: 848

Odp: Problem z tworzeniem nowej biblioteki

Witaj na forum MaxyBlack.

Biblioteka bazy danych, to akurat taka biblioteka na "specjalnych prawach" i nie działa tak samo jak inne. Tak więc musisz zrobić w ten sposób:

$CI->load->database();

Jeśli natomisat biblioteka bazy danych jest ładowana automatycznie w pliku autoload.php, to można jej używać bez przeszkód w ten sposób:

$CI->db->get('tabela');

Polecam też zapoznanie się z odpowiednim rozdziałem z podręcznika użytkownika smile

Używaj proszę znaczników "code" do osadzania kodu - posty będą bardziej czytelne - dzięki.

Ostatnio edytowany przez renholder (14-05-2013 12:42:58)

Offline

#3 14-05-2013 19:21:51

MaxyBlack
Użytkownik
Data rejestracji: 14-05-2013
Liczba postów: 43

Odp: Problem z tworzeniem nowej biblioteki

Dzięki za pomoc.

Offline

#4 14-05-2013 20:54:07

tj_gumis
Użytkownik
Data rejestracji: 24-02-2013
Liczba postów: 343

Odp: Problem z tworzeniem nowej biblioteki

Ja tez sie podlacze bo mam problem z wlasna biblioteka :

Oto moja biblioteka :

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

class Lib_Session
{   

    public $laguage = '';
    public $mode = '';
        
    /** ===================================================================
    // CONSTRUCTOR ========================================================
    //===================================================================*/    
    public function __construct()
    {                     
        $this->language = $this->_get_session_language();
        $this->mode = $this->_get_session_mode();        
    }
    /** ------------------------------------------------------------------- 
	* Get Session Language -
	*--------------------------------------------------------------------*/
    private function _get_session_language()
    {        
        $CI = & get_instance();
        $language = $CI->session->userdata('language');       
        
        if ($language == '')
        {
            $language = $CI->config->item('default_country');   
            $CI->session->set_userdata('language',$language);                        
        }             
        
        return $language;        
    }
    /** ------------------------------------------------------------------- 
	* Get Session mode -
	*--------------------------------------------------------------------*/
    private function _get_session_mode()
    {
        $CI = & get_instance();
        $mode = $CI->session->userdata('mode');
        
        if ($mode == '')        
        {            
            $mode = $CI->config->item('default_mode');
            $CI->session->set_userdata('mode',$mode);               
        }  
        
        return $mode;              
    }   
    
}
/* My_Session.php */ //(set)//
/* Location: ../../probaSA1/application/libraries/Lib_Session.php */ //(set)//

A oto kotroler z w ktorym ja wywoluje :

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

class Hp extends MY_Controller {
    
    public $page = 'hp_'; //(set)//
	
    public function __construct()
    {
	parent::__construct();
         
        $this->load->library('Lib_Session');
                
        $mode = $this->Lib_Session->mode;           BLAD (13) linijka
        $language = $this->Lib_Session->language; BLAD (14) linijka
        
    }     
}
/* End of file hp.php */
/* Location: ../../probaSA1/application/controllers/hp.php */

Problem jest nastepujacy : po "odpaleniu" kontrolera "wywala" mi nastepujacy blad :

A PHP Error was encountered

Severity: Notice

Message: Undefined property: Hp::$Lib_Session

Filename: controllers/hp.php

Line Number: 13



A PHP Error was encountered

Severity: Notice

Message: Undefined property: Hp::$Lib_Session

Filename: controllers/hp.php

Line Number: 14

Czy zechcialby ktos wyjasnic mi w czym rzecz i ewentualne wprowadzic poprawki do kodu ?

Z gory dziekuje.

Ostatnio edytowany przez tj_gumis (14-05-2013 20:56:28)

Offline

#5 14-05-2013 22:38:00

renholder
Administrator
Data rejestracji: 06-09-2012
Liczba postów: 848

Odp: Problem z tworzeniem nowej biblioteki

Przy ładowaniu biblioteki wielkość liter nie ma w zasadzie znaczenia, ale już podczas odwoływania się do danej klasy obowiązuje wersja zapisu małymi literami:

$mode = $this->lib_session->mode;
$language = $this->lib_session->language;

Przydatny link: Tworzenie bibliotek

Offline

#6 14-05-2013 23:36:23

tj_gumis
Użytkownik
Data rejestracji: 24-02-2013
Liczba postów: 343

Odp: Problem z tworzeniem nowej biblioteki

renholder

Jestes wielki smile, dziekuje Ci bardzo.

Offline

Stopka