>  기사  >  PHP 프레임워크  >  thinkphp가 컨트롤러를 로드할 수 없으면 어떻게 해야 합니까?

thinkphp가 컨트롤러를 로드할 수 없으면 어떻게 해야 합니까?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼원래의
2019-08-22 14:38:275441검색

thinkphp가 컨트롤러를 로드할 수 없으면 어떻게 해야 합니까?

ThinkPHP3.2에서 컨트롤러를 로드할 수 없으면 어떻게 해야 하나요?

ThinkPHP3.1.3을 ThinkPHP3.2.3으로 업그레이드할 때 View, Mode, Controller를 지정된 디렉토리에 배치해도 여전히 컨트롤러를 로딩할 수 없는 문제가 있습니다. 일부 연구 결과, 이는 주로 여러 가지 이유로 인해 발생할 수 있음이 밝혀졌습니다.

(1) APP_USE_NAMESPACE(네임스페이스 사용 여부): false로 설정하면 컨트롤러 정의 시 네임스페이스를 사용하면 컨트롤러가 로드되지 않습니다. 이 경우 매개변수를 true로 설정합니다. 그게 다야. ThinkPHP/Common/Conf/convention.php에서 설정할 수 있습니다.

관련 권장 사항: "ThinkPHP Tutorial"

(2) ACTION_BIND_CLASS(메서드 및 클래스 바인딩 여부): false로 설정하면 Controller 폴더의 구조는 Controller/View 이름 Controller.class.php여야 하며 메소드는 클래스에 하나씩 작성되지만 true로 설정되면 Controller 폴더의 구조는 Controller/View 이름/메소드여야 합니다. class.php, A 클래스는 메소드에 해당합니다.

(3) MODULE_ALLOW_LIST(모듈에 대한 접근 허용) 및 MODULE_DENY_LIST(모듈에 대한 접근 거부): 해당 모듈이 접근 금지로 설정되거나 접근 허용 목록에 설정되지 않은 경우 해당 모듈 아래의 모든 모듈은 페이지에 정상적으로 접근할 수 없습니다.

(4) URL_MODEL(URL 접근 모드) : 0이 아닌 경우 U 메소드를 사용하여 모듈 하위의 다른 컨트롤러의 메소드를 호출하는 경우 BIND_MODULE을 정의하여 모듈을 정의해야 합니다. 그렇지 않으면 현재 모듈을 인식할 수 없습니다.

(5) 컨트롤러 정의가 잘못되었습니다. 네임스페이스는 컨트롤러에서 주석이 아닌 첫 번째 줄에 정의해야 하며, 컨트롤러를 정의할 때 클래스 이름의 철자법에 주의하고, 확장 컨트롤러가 존재하는지 여부. 이 작은 문제로 인해 컨트롤러에 액세스할 수 없는 경우가 많습니다.

(6) BIND_MODULE(바인딩 모듈): 항목 파일에 모듈이 바인딩되어 있으면 해당 모듈을 경로에 포함할 수 없으며 그렇지 않으면 컨트롤러에 액세스할 수 없습니다.

위 내용은 thinkphp가 컨트롤러를 로드할 수 없으면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.