php - Yii Controller 命名约定

标签 php linux apache yii

我有一个名为 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()

这将适用于 LinuxWindows

Windows 读取文件和文件夹不区分大小写。并且经常隐藏一些错误。

当您在 Windows 上开发时会出现常见问题...并创建一个链接 categoryadmin 操作系统会很乐意为您提供一个文件,例如 CaTegoRYadmiNcontroller.php 忽略大写。

但是,当您在 Linux 上部署相同的代码和文件时,您会遇到File Not Found 异常。
所以,最好坚持惯例。

关于php - Yii Controller 命名约定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19898021/

相关文章:

javascript - 使用 WordPress 类别的 Google map 位置过滤器

phpMyAdmin 身份验证方法和强制 SSL 未按预期工作

java - Apache 公共(public)日志配置

apache - Docker 在运行 Docker 启动命令时无法执行初始化脚本

php - 使用 TinyMCE 的谷歌文档样式自动保存

php - 在 laravel 中编写 sql 查询时遇到困难

javascript - 如何通过 mysql 数据选中/取消选中模式中的单选按钮?

linux - gawk 和 shell 脚本的单引号问题

java.io.IOException : Cannot run program "usr/bin/ffmpeg ": error=2, 没有那个文件或目录

linux - 不能在 vagrant 上使用 mongoimport