2012-11-12 3 views
2

Yii에서 모듈을 사용하려고 시도하고 모듈의 메서드에 대한 주 컨트롤러 (SiteController)에서 액세스하려고합니다. Gii 모듈 만들기, 모듈 이름은 Car입니다. RequestController, module Car에서 메소드 검색에 액세스하려고 시도합니다.Yii, 주 컨트롤러의 모듈 사용

echo Yii::app()->Car->Request->search(); 

그리고 YII 나에게

속성 "CWebApplication.carhire을"이야기가 정의되어 있지 않습니다.

다른 컨트롤러에서 모듈의 메서드에 액세스하는 방법을 아는 사람이 있습니까? 감사합니다.

답변

2

모듈이 응용 프로그램 범위에 포함되지 않습니다. 즉, componentsYii::app()-> 모듈을 통해 액세스 할 수 있지만 Yii::app()->getModule($moduleName)->을 통해 액세스 할 수 있습니다.

이것은 실제로 컨트롤러에서 동작을 실행하는 데 도움이되지 않습니다. 모듈을 추상화 할 필요가 전혀 없어도 액세스하기가 어렵습니다.

bool.dev 님의 답변 Here이 (가) 정말 필요한 경우 내가 본 최고의 방법입니다.

그러나 문제는 사이트의 구조와 관련된 근본적인 문제를 나타낼 가능성이 있습니다. 앱의 다른 곳에서 모듈 컨트롤러 기능에 액세스해야하는 경우 모듈에 없어야합니다.

+1

Yii 이데올로기 모듈 -보기, 컨트롤러 등이있는 독립적 인 프로그램 모듈입니다. 그리고 저는 다른 모듈로 사이트를 만들고 싶습니다. 각각은 작업을 수행하고 서로 상호 작용하지 않으므로 주 컨트롤러 사이트 만 각 모듈을 호출해야합니다. – moka

+1

왜 메인 컨트롤러에서 호출해야합니까? 문제를 해결하는 다른 방법이있을 수 있으므로 궁금합니다. – Paystey

+0

위에서 설명한대로 다중 프로그램 응용 프로그램을 만들고 각 모듈은 독립적 인 프로그램이어야합니다. 각 모듈은 작업을 수행하고 서로 상호 작용하지 않습니다. 너를 어떻게 설명 할까? 모르겠다. – moka