本人新手,今天在测试学习thinkphp的时候遇到一个困惑,求大神指点:
代码很简单,只有一个IndexAction(自动生成的),里面有一个index方法和test方法;我用的url模式是重写模式('URL_MODEL' => 2),重写规则都已经写好,但是在访问test方法的时候始终不成功,按照手册的说法,应该是http://www.admin.me/Index/test就可以,但是我测试总是报错:无法加载模块:test,(无论index开头大小写都一样),而http://www.admin.me/index/Index/test的时候就能正常访问,我想问的是最前面的那个index是什么东西啊?不是说第一个参数是模块名称,第二个参数是操作名称么?这里怎么会有两个index?我的项目文件夹是App,文件结构如图 求大神指点!!
最前面那个是总入口文件,第二个index是你的控制器 也就是继承action的那个文件 ,第三个test是你的方法,也就是处理的代码块函数,不知道这样说你清楚了没???希望对你有帮助
最前面那个是总入口文件,第二个index是你的控制器 也就是继承action的那个文件 ,第三个test是你的方法,也就是处理的代码块函数,不知道这样说你清楚了没???希望对你有帮助 谢谢你的回复,只是我的文件结构里没有index这个文件名啊?
看来你没有按照规则来啊 ,,你要符合TP的规则 ,
看来你没有按照规则来啊 ,,你要符合TP的规则 , 呵呵!我什么都没做,就只在IndexAction中添加了一个test函数。连IndexAction都是thinkphp自动生成的;然后修改了URL模式为2,加了一个.htaccess文件(这个文件内容是手册里面复制了来的,重写规则不可能出错)……仅此而已。剩下的就是url访问问题了,这不可能存在违反规则吧?
那么在与THINK同目录的文件加下面你加了index.php文件了么? 你该写点东西在里面,
<?phpdefine('THINK_PATH','./ThinkPHP/');define('APP_PATH','./home/');define('APP_NAME','home');require THINK_PATH.'ThinkPHP.php';App::run();?>
很精彩,应该继续讨论
拿个thinkphp手册来看一下不就知道了。
那么在与THINK同目录的文件加下面你加了index.php文件了么? 你该写点东西在里面,
<?phpdefine('THINK_PATH','./ThinkPHP/');define('APP_PATH','./home/');define('APP_NAME','home');require THINK_PATH.'ThinkPHP.php';App::run();?>
拿个thinkphp手册来看一下不就知道了。
经过多方查询,终于知道结果了,Thinkphp官网有提出此处是一个bug,详见《Apache服务器开启URL重写去除index.php导致IndexAction下所有方法无法解析》