lxepoo 2015-03-29 17:23:36 5141次浏览 11条回复 1 0 0

从1.0到2.0,我也用YII快2、3年了。

这两天用2.0进行开发,程序结构什么的研究了一下,上手很快。

但是今天写代码的时候发现,有个控制器动作死活不能访问,报404

我的控制器方法叫: public function actionShowContact()

那么按照1.0的思路,应该可以使用 http://abc.com/user/info/showContact 这个路径来访问 但是,尝试了N次之后,没有成功,除了这个方法,别的都正常,只要涉及到连个单词组成的方法,都不能访问。

然后我试了一下,改成了 public function actionShowcontact() 然后使用 http://abc.com/user/info/showcontact 这个路径来访问就可以了,没细细研究,感觉和路由有点关系,或者是我没仔细看文档,但是比较迟,去吃饭了,如果大家有碰到过,并且解决的,麻烦回复下,谢谢~

  • 回复于 2015-03-29 18:05 举报

    骆峰结构用-分隔,controller,action的名字都应是小写

  • 回复于 2015-03-29 18:07 举报

    public function actionShowContact()//访问show-contact

  • 回复于 2015-03-29 18:08 举报

    楼上正解,我刚才做了个测试方法:
    public function actionTestRun()

    正确的访问方式是:
    http://abc.com/user/info/test-run

    非常感谢

  • 回复于 2015-03-29 19:39 举报

    发帖的时候注意使用markdown格式,我已经帮你们改好了,以后必须注意。

  • 回复于 2015-03-29 21:48 举报

    请问有没有办法弄成1 的那种形式。。。

  • 回复于 2015-03-30 18:38 举报

    驼峰式应该改成-访问,User/actionShowUser====>user/show-user

  • 回复于 2015-03-31 14:30 举报

    我想问一下 http://abc.com/user/info/showContact 这种路由怎么配置的 这个是user项目名称,info控制器,showcontact-Action么,我的/testdrive/home/city 去nginx配置index.php,urlmanage匹配的controller和action ,abc.com/home/city可以, 但是想abc.com/testdrive/home/city要怎么配置 testdrive项目

  • 回复于 2015-03-31 17:03 举报

    不是的
    abc.com/user/info/showContact
    代表的是,abc.com域名,user模块,info控制器,showContact动作

  • 回复于 2015-03-31 17:07 举报

    我的没用模块 这种去index路由要怎么配置啊

  • 回复于 2015-03-31 17:10 举报

     'urlManager' => [
                'enablePrettyUrl' => true,
                'showScriptName' => false,
                'rules' => [
                //维护模式时的路由,代表所有解析都被指向提示页!
                //'catchAll' => ['common/weihu'],
                ],
            ]
    
  • 回复于 2015-04-20 20:21 举报

    我也遇到了类似的问题:

    假如本机访问是ok的:http://abc.com/stationuser/index

    到linux上文件名得改成:
    StationUserController.php => StationuserController.php

您需要登录后才可以回复。登录 | 立即注册