yii 프레임 워크 용 사용자 정의 확장을 쓰려고하는데 확장 프로그램/컨트롤러 폴더에 저장된 컨트롤러에 액세스 할 수 없습니다. 나는 많은 것을 수색했지만 나는 그 어떤 힌트도 찾지 못했습니다. 이 내가 확장을로드하는 데 필요한 모든 조정을 완료 한yii extensions : 내선에있는 컨트롤러에 액세스하는 방법
protected
-- extensions
-- XYZ (Extension's name)
-- assets
-- controllers
-- XYZController.php
-- models
-- XYZModel.php
-- widgets
-- views
-- form.php
-- XYZWidget.php
구조이며, 현재 내가 $ this-를 사용하여 뷰 폴더에서 양식을 표시 할 수 있어요> renderInternal ('보기/form.php'). 따라서 확장이 성공적으로로드됩니다. 확장 프로그램 폴더에있는 컨트롤러에 액세스하려고하면이 문제가 나타납니다.
일반적으로 보호 된/컨트롤러/SiteController.php 내부의 인덱스 메소드에 액세스해야하는 경우 URL은 http://project.com/index.php/site/index입니다. 따라서/extensions/controllers/XYZController의 메소드에 액세스하려면 어떻게해야합니까? 이 다양한 권고
'controllerMap'=>array(
'XYZ'=>array(
'class'=> 'XYZ.controllers.XYZController',
),
),
설정/main.php 파일
Yii::setPathOfAlias('XYZPath', realpath('protected') . '/extensions/AQ');
return array(
-------
-------
'preload'=>array('log', 'XYZ'),
// autoloading model and component classes
'import'=>array(
'application.models.*',
'application.components.*',
'application.extensions.XYZ.controllers.*',
'application.extensions.XYZ.models.*',
'application.extensions.XYZ.widgets.*',
),
'controllerMap'=>array(
'XYZ'=>array(
//'class'=> 'XYZPath.controllers.XYZController',
'class'=> 'extensions/XYZ/controllers/XYZController',
),
),
-------------
-------------
)
로 작성된 같은 양식에서 .PHP.
나는 main.php 코드의 덩어리를 추가
이 상황에서 어떤 힌트를 주시도록 부탁드립니다. 미리 감사드립니다.
응용 프로그램 구성 요소 (http://www.yiiframework.com/doc/guide/1.1/en/extension.create#application-component) 또는 모듈 (http://www.yiiframework.com/doc/)을 작성하고 있습니다. guide/1.1/ko/extension.create # module)? 둘 다 없다면 설정 파일에'extensions.XYZ.controllers. *'만 가져 오면됩니다. –
나는 이것을 'application.extensions.XYZ. *'처럼 만들었으므로 XYZ 폴더 내의 모든 것이 포함되어야한다. – johannesMatevosyan
Yii는 하위 폴더에서 클래스를 재귀 적으로 가져 오지 않으므로 전체 폴더 별칭을 사용하여'controllers'의 클래스를 포함해야합니다. –