关于ThinkPHP控制器的方法失效的问题

今天发现控制器的方法失效了,用了排除法,找了长时间的原因,都没有找出来,后来干脆把home模块中的控制器和视图文件都复制到bbs模块下,竟然也不行。

这说明了控制器和视图没有问题,一定是模块的配置有问题,后来差一点要删除模块重新建了。

后来在模块的配置文件中,发现了原因,原因就是:

<?php
return array(
    //‘配置项‘=>‘配置值‘
        ‘ACTION_SUFFIX‘ =>  ‘Action‘, // 操作方法后缀

);

这个妖精造成的,看来我还是不熟悉ACTION_SUFFIX这个配置选项的使用,经过研究才发现:

注意:只是要在控制器的方法上加上后缀,但是URL中,不用加后缀,

例如:

正确的URLhttp://localhost/tp2/bbs/index/index

错误的URLhttp://localhost/tp2/bbs/index/indexAction

使用了错误的URL,就会造成控制器方法失效
注意:模板文件要写成index.html,不能写成indexaction.html

时间: 2024-10-13 20:11:01

关于ThinkPHP控制器的方法失效的问题的相关文章

解决ThinkPHP的Create方法失效而没有提示错误信息的问题

ThinkPHP中的数据创建Create方法是一个非常有用的功能,它自动根据表单数据创建数据对象(在表字段很多的情况下尤其明显) 但有时候该方法可能并未按照你期望的来工作,比如方法不工作而且还没有提示错误信息 这个时候你就要好好仔细下你的代码了,因为很有可能你写的代码不规范或是其他原因 以下是我因为自己的粗心而出现的问题:Create方法失效而没有提示错误信息 /** * 编辑数据 * @Author NETFOX-HTL * @Email [email protected] * @DateTi

ThinkPHP跨控制器调用方法

跨控制器调用方法 1. 先造对象,再调用里面的方法 $sc=new \Home\Controller\IndexController();  用绝对路径找echo $sc->ShuChu(); 2. $sc=new IndexController();  用相对路径 echo $sc->ShuChu(); 还可以使用thingkphp中的快捷方法 1. $sc=A("Index");      使用TP框架的快捷方法A来创建控制器对象  ()内直接写控制器名 [跨模块调用]

ThinkPHP的A方法,R方法,M方法,D方法区别

在Thinkphp中,实例化对象有这么几种方法,如果是类,有A和R方法,区别是A方法只是对象的实例化,而R方法是可以同时实例化对象里面的方法的,这里需要去指定,如下面的实例代码: 1 <?php 2 namespace Admin\Controller; 3 use Think\Controller; 4 5 class GoodsController extends Controller{ 6 public function showlist(){ 7 8 //实例化控制器A方法 9 $tes

ThinkPHP控制器相关操作

1.空操作 空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化. http://网址/index.php/Home/Main/login http://网址/index.php/Home/Main/hello  空操作 出现页面: 显示的错误信息过于详细,为安全以及优化页面起见,实行空操作 1.做一个_empty()方法.要在子类里面写,不要再父类里(推荐使用) function _empty() { ech

YII获得当前控制器和方法

[如何获得当前控制器和方法] 控制器:$this -> id ; 方法:$this->action->id ; 这主要是用在视图中,进行高亮显示. <div id="mainNav" class="clearfix"> <a href="./" <?php if($this->id == 'index')echo "class='cur'"; ?>>首页<spa

List.removeAll()方法失效

前几天遇到List.removeAll()方法失效,测试了半天都没测出来,后面跟老大在那边调试了半天,最后终于找出原因,以后要是谁遇到这个奇葩的问题可以借鉴参考下,或许会对你有所帮助,废话不多说,直接上代码 显示数据的主页面 public class MainActivity extends Activity { private ListView listview1; private List<BPOS_HospitalUnInStockInfo> list1; private List<

thinkphp中limit方法

limit方法也是模型类的连贯操作方法之一,主要用于指定查询和操作的数量,特别在分页查询的时候使用较多.ThinkPHP的limit方法可以兼容所有的数据库驱动类的. 用法 限制结果数量 例如获取满足要求的10个用户,如下调用即可: $User = M('User');$User->where('status=1')->field('id,name')->limit(10)->select(); limit方法也可以用于写操作,例如更新满足要求的3条数据: $User = M('U

cmstop传递什么控制器和方法---就实例化该控制器

object顶级类class object 第一级抽象类controllerabstract class controller extends object 第二级抽象类controller_abstract 继承controller 祖父类 abstract class controller_abstract extends controller cmstop.php主程序 设置属性public $app, $controller, $action用来接收并保存当前请求的模块,控制器,和方法实

结合公司的框架解决MVC的分离问题、【公司的入口和解决路由分发功能(url转为控制器和方法的使用)】

1.面向对象的语法需要进行一次比较细节的总结 [到面向对象之后完成了基础语法的复习] 2.ecshop做电商的网站[模拟这个框架] 安装ecshop中的upload包[进行配置:注意gd和mysql] 安装成功之后ecshop并不兼容php-5.4以上的版本,报错太多 [现在需要考虑的是做一套系统实现] [另外需要参考多个框架和项目(成型的系统二次开发)了解业务和思想] [重点] 3.设计一个框架[MVC框架思维] (1)框架设计中的第一条思路 首先实现逻辑和显示的分离[因为php本身是嵌入式的