Thinkphp3.2無法加載控制器怎么辦?
在將thinkphp3.1.3升級到ThinkPHP3.2.3時,即使將View、Mode、Controller放到了指定目錄下也還是出現無法加載控制器的問題,經過一番研究,發現主要可能由幾個原因引起。
(1)APP_USE_NAMESPACE(是否使用命名空間):當設置為false時,如果定義控制器時使用了命名空間,則會導致無法加載控制器,此時將參數設為true即可??稍赥hinkPHP/Common/Conf/convention.php中設置。
相關推薦:《ThinkPHP教程》
立即學習“PHP免費學習筆記(深入)”;
(2)ACTION_BIND_class(是否綁定方法和類):當設置為false時,Controller文件夾的結構應該為Controller/View名Controller.class.php,方法在類中逐個寫;但設置為ture時,則Controller文件夾的結構應該為Controller/View名/方法.class.php,一個類對應一個方法。
(3)MODULE_ALLOW_LIST(允許訪問模塊)和MODULE_DENY_LIST(禁止訪問模塊):當模塊設置在禁止訪問或未設置在允許訪問的列表中,則無法正常訪問該模塊下的所有頁面。
(4)URL_MODEL(URL訪問模式):當不為0時,若使用U方法調用模塊下的其他控制器的方法,需通過定義BIND_MODULE來定義模塊,否則無法識別當前模塊。
(5)控制器定義有誤:控制器中必須在首個非注釋行定義命名空間,并且定義控制器時注意class名稱的拼寫,以及extends的控制器是否存在,常常因為這個小問題導致無法訪問控制器。
(6)BIND_MODULE(綁定模塊):如果在入口文件中綁定了模塊,則路徑中不能再包含模塊,否則無法訪問控制器。