php thinkphp获取actionn 如何定位到thinkphp获取actionn类的方法

thinkphp 写了个类继承了Action类。myAction.class.php 想要所有的控制器都继承自己写的myAction类_百度知道
thinkphp 写了个类继承了Action类。myAction.class.php 想要所有的控制器都继承自己写的myAction类
怎么引入。.class....php这个文件要在哪里引入...?谢谢.php 内容大概如下 class myAction extends Action{.} 那么myAction.class....thinkphp 写了个类myAction
提问者采纳
放在Lib\Actionclass CommonAction extends Action {//初始化方法
function _initialize()
}}其他文件继承class IndexAction extends CommonAction {}
提问者评价
按照你说的,真的成功了,好开心,谢谢你!
其他类似问题
按默认排序
其他2条回答
MyActionclass TestAction extends MyAction{
&#47?对了你自己的那个类文件名似乎有点不规范.class.php}这样写不可以吗;/TestAction.class.php继承MyAction.class
3q~~已经可以了。。我遇到了各其他问题。。我设置了分组的。空模块EmptyAction.class.php放在Action目录下。没用,一定要放到分组的目录下,才有效果。
放在项目目录的Lib/Action下面就可以了,然后其他的控制器就extends myAction
不行,提示我Class 'MyAction' not found D:\xampp\htdocs\Myweb\Lib\Action\Home\IndexAction.class.php MyAction.class.php就包含这点信息可以么?
class MyAction extends Action{
public function _initialize(){
文件名正确么
thinkphp的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁页面导航:
→ 正文内容 ThinkPHP 模块
ThinkPHP采用模块和操作分析
ThinkPHP采用模块和操作的方式来执行,首先,用户的请求会通过入口文件生成一个应用实例,应用控制器(我们称之为核心控制器)会管理整个用户执行的过程,并负责模块的调度和操作的执行,并且在最后销毁该应用实例。
任何一个WEB行为都可以认为是一个模块的某个操作,系统会根据当前的URL来分析要执行的模块和操作。这个分析工作由URL调度器来实现,官方内置了Dispatcher类来完成该调度。 在Dispatcher调度器中,会根据 http://servername/appName/moduleName/actionName/params 来获取当前需要执行的项目(appName)、 模块(moduleName)和操作(actionName),在某些情况下,appName可以不需要(通常是网站的首页,因为项目名称可以在入口文件 中指定,这种情况下,appName就会被入口文件替代)。在复杂一点的情况下面,可能还会出现分组(groupName)。 每个模块是一个Action文件,类似于我们平常所说的控制器,系统会自动寻找项目类库Action目录下面的相关类,如果没有找到,则会定位到空模块,否则抛出异常。 而actionName操作是首先判断是否存在Action类的公共方法,如果不存在则会继续寻找父类中的方法,如果依然不存在,就会寻找是否存在自动匹配的模版文件。如果存在模版文件,那么就直接渲染模版输出。 因此应用开发中的一个重要过程就是给不同的模块定义具体的操作。一个应用如果不需要和数据库交互的时候可以不需要定义模型类,但是必须定义Action控制器。 Action控制器的定义非常简单,只要继承Action基础类就可以了,例如:microfiber cloth
代码如下: class UserAction extends Action{ }
如果我们要执行下面的URL http://servername/index.php/User/add 你需要增加一个add方法就可以了,例如 折叠PHP Code复制内容到剪贴板
代码如下: class UserAction extends Action{ // 定义一个add操作方法,注意操作方法不需要任何参数 Public function add(){ // add操作方法的逻辑实现 // …… bath rug $this-&display(); // 输出模板页面 } }
操作方法必须定义为Public类型,否则会报错。并注意操作方法的命名不要和内置的Action类的方法重复。系统会自动定位当前操作的模板文件,而默认的模板文件应该位于项目目录下面的Tpl\default\User\add.html。
您可能感兴趣的文章:
上一篇:下一篇:
最 近 更 新
热 点 排 行
12345678910yii 调用不存在的方法和控制器 该怎么办?_php吧_百度贴吧
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&签到排名:今日本吧第个签到,本吧因你更精彩,明天继续来努力!
本吧签到人数:0成为超级会员,使用一键签到本月漏签0次!成为超级会员,赠送8张补签卡连续签到:天&&累计签到:天超级会员单次开通12个月以上,赠送连续签到卡3张
关注:43,186贴子:
yii 调用不存在的方法和控制器 该怎么办?收藏
yii 调用不存在的方法和控制器 该怎么办?
不明觉厉!不存在怎么调用?
有默认的 controller 和 action 的,分别是:defaultController 默认是 sitedefaultAction 默认是 index查看手册,看 CWebApplication 和 CController 两个类的部分。
楼主贴代码吧!
我感觉 你们都理解错了;比如,登陆页url:调用的是user控制器的login方法但是 如果这时候 用户把路径改一下,改成这样的话,user123控制器不存在,就会出错。tp框架 在遇到这种情况的时候,会自动执行emptyaction控制器里面的 _empty方法。yii呢?
TP空操作:是指系统找不到指定的操作方法时,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些url的优化。空模块:的概念是指当系统找不到指定的模块名称的时候,系统会尝试定位空模块(EmpytAction),利用这个机制我们可以用来定制错误页面和进行url的优化
好像PHP的程序员都不喜欢路由表
public function missingAction($actionID){
var_dump($actionID);}碰上这种问题,除了看文档,我的选择就是看框架的源代码,刚刚也碰上这个问题,直接看源码发现这个解决方案:/*** Handles the request whose action is not recognized.* This method is invoked when the controller cannot find the requested action.* The default implementation simply throws an exception.*
string $actionID the missing action name*
CHttpException whenever this method is invoked*/public function missingAction($actionID){throw new CHttpException(404,Yii::t('yii','The system is unable to find the requested action "{action}".',array('{action}'=&$actionID==''?$this-&defaultAction:$actionID)));}
登录百度帐号推荐应用
为兴趣而生,贴吧更懂你。或怎样在自定义类中调用Action类的方法 - ThinkPHP框架
请问大家怎样在自定义类中调用Action类的方法呢,现在需要生成静态,需要在自定义类中先assign替换处理后利用fetch获取生成的html。
七牛云存储优惠码驾到!
ThinkPHP 是一个免费开源的,快速、简单的面向对象的 轻量级PHP开发框架 ,创立于2006年初,遵循Apache2开源协议发布,是为了敏捷WEB应用开发和简化企业应用开发而诞生的。ThinkPHP从诞生以来一直秉承简洁实用的设计原则,在保持出色的性能和至简的代码的同时,也注重易用性。并且拥有众多的原创功能和特性,在社区团队的积极参与下,在易用性、扩展性和性能方面不断优化和改进,已经成长为国内最领先和最具影响力的WEB应用开发框架,众多的典型案例确保可以稳定用于商业以及门户级的开发。}

我要回帖

更多关于 thinkphp获取action 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信