문제

방금 몇 시간 전에 CodeIgniter를 사용하기 시작했고 몇 가지 문제를 발견했습니다. 현재 이름이 지정된 컨트롤러에있는 함수를 호출하려고합니다. admin.php. 나는 도우미로부터 이것에 액세스하려고 노력하고 있습니다. 어떻게 제대로 할 수 있습니까? 나는 거의 모든 것을 시도했지만 다음 오류를받을 때 아무것도 작동하지 않는 것 같습니다.

Fatal error: Call to a member function login() on a non-object

이 문제에 대한 도움은 대단히 감사하겠습니다

도움이 되었습니까?

해결책

나는 Jimyi에 동의합니다. 도우미 및 라이브러리 클래스는 응용 프로그램의 특정 컨트롤러와 무관해야합니다. 예를 들어 "페이지 제목"도우미가있는 경우 관리자 컨트롤러의 특정 동작에 의존해서는 안됩니다. 관리자 컨트롤러가없는 다른 응용 프로그램에서 페이지 도우미를 사용하려면 어떻게해야합니까? 또는 도로 아래로 관리자 컨트롤러를 변경하면 이제 이러한 변경 사항이 도우미를 부수 지 않도록해야합니다.

헬퍼 기능에 관리자 컨트롤러가 가지고있는 특정 비트의 데이터가 필요한 경우 컨트롤러에서 기능 매개 변수로 전달할 수 있습니다. 이런 식으로 도우미는 컨트롤러가 도우미의 종속성이 아니라 컨트롤러의 종속성입니다.

또한, 해당 오류 메시지는 당신이 부르고있는 것을 제대로 인스턴스화하지 않았 음을 의미합니다. 그래서 당신은 다음과 같은 일을하고 있습니다.

$this->load();

도우미 내에서. 그러나 도우미에서

$this
정의되지 않았습니다 (따라서 '비 개체'오류). CodeIgniter는 컨트롤러 외부에서 모델, 라이브러리 및보기를로드하는 방법을 제공합니다. 그러나 내가 아는 한 컨트롤러에 대해이 작업을 수행 할 수는 없습니다. 그래도 위에서 언급 한 이유 때문에 괜찮습니다. 종속성을 소개 할 때주의해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top