我有一个名为 CategoryAdminController.php
的 Controller ,可以通过 Windows 机器上本地主机中的 {siteurl}/categoryadmin/index
访问它。但是当我尝试在 Linux 平台上的远程服务器上启动它时,它无法加载页面。但是当我将我的 Controller 重命名为 CategoryadminController.php
(以及相应的类名)时,它工作正常。
有没有办法在 Controller 中保留原始名称的同时加载页面(即:CategoryAdminController.php
)
根据 Yii 指南,这似乎是不可能的。
http://www.yiiframework.com/doc/guide/1.1/en/basics.convention
有什么想法吗?
谢谢
最佳答案
为了保持 Controller 名称和 Action 名称采用 CamelCased 并在 Linux 上工作,您需要在 URL 中的每个单词之间添加破折号:
"{siteurl}/category-admin/index" -> CategoryAdminController->indexAction()
"{siteurl}/category-admin/my-way" -> CategoryAdminControllern->myWayAction()
这将适用于 Linux 和 Windows。
Windows 读取文件和文件夹不区分大小写。并且经常隐藏一些错误。
当您在 Windows 上开发时会出现常见问题...并创建一个链接 categoryadmin
操作系统会很乐意为您提供一个文件,例如
CaTegoRYadmiNcontroller.php
忽略大写。
但是,当您在 Linux 上部署相同的代码和文件时,您会遇到File Not Found
异常。
所以,最好坚持惯例。
关于php - Yii Controller 命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19898021/