Witamy na polskiej stronie wsparcia CodeIgniter. Nie zapomnij odwiedzić naszej strony głównej
Nie jesteś zalogowany na forum.
Strony: 1
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
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
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
Dzięki za pomoc.
Offline
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
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
renholder
Jestes wielki , dziekuje Ci bardzo.
Offline
Strony: 1