CodeIgniter에서 사용자 정의 사용자 라이브러리를 만들려고합니다. 이 라이브러리에서는 다른 CodeIgniter 라이브러리와 도우미를 사용하고 싶지만 오류가 발생합니다. 다음은 내가 취한 조치입니다 :CodeIgniter 용 사용자 라이브러리의 CI 인스턴스
User.php 파일에 User 클래스를 생성하고이를 applications/libraries /에 업로드했습니다.
내부 application/config/autoload.php 사용자 라이브러리를 자동로드하고 있습니다.
$this->user->create_login_form()
그것은 방법처럼 보인다 : 나는 create_login_form 메서드를 호출 사용하고 나의보기 중 하나에서 다음
<?php class User { private $CI; public function __construct() { $this->CI =& get_instance(); $this->CI->load->helper('form'); } public function create_login_form() { echo 'hello'; echo $this->CI->form->form_open(); } } /* End of file User.php */
: 여기
form_open
메서드를 사용하면 다음 오류가 발생합니다.
A PHP Error was encountered Severity: Notice Message: Undefined property: Home::$form Filename: libraries/User.php Line Number: 46
Fatal error: Call to a member function form_open() on a non-object in .../application/libraries/User.php on line 46
내가 잘못하고있는 아이디어가 있습니까?
감사합니다.
대만족 감사 Narf! CodeIgniter를 사용하여 시작하기 만하면 모든 것을 감쌀 필요가 있습니다. 후속 질문 : 라이브러리 메소드를 사용하려면 $ this-> CI-> library-> method()를 사용해야합니다. – GregoryLG
예. 또 다른 메모 - 양식 도우미가 필요하고 * 사용자 * 라이브러리가 자동로드되도록 설정되어 있으면 양식 도우미를 자동로드해야하므로 get_instance()를 사용할 필요가 없습니다. – Narf
굉장하고 충고에 감사드립니다! 마지막으로 헬퍼를 자동 로딩하는 방법을 통해 get_instance()와 CI 객체에 대한 참조를 전달하고 헬퍼가 _functions_으로 모든 코드에서 사용할 수 있도록 보게됩니다. 그러나 세션 라이브러리를 사용할 것이라는 것을 알고 있다고 말합니다. 세션 라이브러리를 자동로드하더라도 사용자 정의 라이브러리 내에서 CI Object에 대한 참조를 가져 와서 Session의 _methods_에 도달해야합니까? – GregoryLG