
正文
thinkphp继承类,php多继承
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
ThinkPHP要做一个登录判断的控制器让其他控制器来继承它,如果没登录...
建立一个公用类控制器:CommonAction.class.php?phpclass CommonAction extends Action{function _empty(){header(Location: /40html);}}?复制代码然后 让其他控制器 都继承这个控制器, 如 IndexAction extends CommonAction 这样就行了。你贴出的 empty方法的代码 好像也有点问题。
登录无非就是验证用户名密码以及验证码是否正确,我们可以新建一个CommonAction的公共类,用来校验权限,其他所有类继承此类。该类内部写一个初始化方法,用于验证,这一讲先不详细讲解。
你在用户登录的时候将用户的信息储存在session里,所以在判断用户是否登录的时候就直接判断session是否存在就可以了。
相关问答
Q1: thinkphp框架中Controller类是什么类,为啥都要继承它,本人新手,能详细...
框架核心目录的结构无需改变,但框架的目录名称(ThinkPHP)可以在应用入口文件中随意更改。
Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作。
单词错啦好几个,field不是filed,assign不是assgin,这些都是方法名,是不可以错的,还有这个错误提示的意思是变量未定义,你要检查下相关的字段是否存在。
控制:在Struts中,承担MVC中Controller角色的是一个Servlet,叫ActionServlet。ActionServlet是一个通用的控制组件。这个控制组件提供了处理所有发送到Struts的HTTP请求的入口点。它截取和分发这些请求到相应的动作类(这些动作类都是Action类的子类)。
其实很简单,在你用M实例化一个Model对象的时候,所有的Model都是继承Thinkphp的Model模型类。而在model模型类中有一个魔术方法__set,如果你对面向对象的魔术方法有了解的话,就知道__set是为不存在的属性进行赋值。
Q2: 求助,thinkphp公共控制器继承
推荐方案:如果不是必须的情况下。尽量不要把公共控制器写在controller文件夹内。有以下2个方案。使用分层控制器,这些分层控制器是不能够被URL访问直接调用到的。常用的分层命名为event。使用trait引入的形式也是可以的。这是php4的新特性。thinkphp5在控制器内使用use直接引入。
公共控制器继承thinkphp的控制器。实际的控制器再继承公共控制器。但是有一点需要注意的是,如果把公共控制器写在controller文件夹下的话。外部是能够访问到的。推荐方案:如果不是必须的情况下。尽量不要把公共控制器写在controller文件夹内。有以下2个方案。
use Common\Controller\HomebaseController;你需要这样引入。
Q3: Thinkphp报错,详细见问题补充。但是好像不影响使用
感觉应该是服务器缓存配置问题,和thinkphp应该一点关系都没有,因为你改的是入口文件,而且改完之后是直接报错了,这种致命错误会中断程序的,所以thinkphp根本就没办法生成缓存文件。你得检查一下apache和php的配置才行,不是很好帮你啊。
这个页面都出现了(典型的thinkphp页面),说明请求已经到了,是thinkphp程序抛出的一个404。但是什么情况下才会这样?最后发现,当关闭thinkphp的调试模式,程序错误时,不显示错误到页面,就会出现这个上面这个页面 。
需要在服务器端执行后才能到达正确的下载地址,所以最好点击进入网页获得正确的下载地址例如后缀类似于rar的,再使用下载地址,如果不能获取,就可能是服务器出了问题。无法访问了PHP是一种服务器端HTML-嵌入式脚本描述语言。
Q4: THINKPHP里面如何继承自己写的公共类??
thinkPHP对模板文件进行目录划分,默认的模板文件定义规则是:视图目录/[模板主题/]控制器名/操作名+模板后缀。默认的视图目录是模块的View目录(模块可以有多个视图文件目录,这取决于你的应用需要),框架的默认视图文件后缀是.html。新版模板主题默认是空(表示不启用模板主题功能)。
接口啊,接口是允许继承多个接口的,然后了解一下接口和抽象类的区别。然后再去研究一下PHP OOP里面的一些固定的语法或者说是规则。然后就OK拉,西西。了解设计模式,自己写点东西,对这玩意有所了解,别学完了都忘了。
项目运行的时候,你在项目的Action里面会这样写 class IndexAction extends Action{ //你的代码 } 后面的Action就是lib里面的action基类了,你这边继承他的话就可以调用到了。马上四年了,估计现在你也懂了,给百度到这个问题的其他人看看吧。
public function fun_public(){ ...} //下面这个方法调用公共方法 public function another_fun(){ Exa = A(Examp);Exa-fun_public();...} } 这样就行,分别在本类中其他的方法中前两句都加上another_fun方法中的前两句就行了 你可以学习下thinkphp手册中的“跨模块调用”。
关于thinkphp继承类和php多继承的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。



