ThinkPHP实现登录限制时__construct和_initialize的区别

ThinkPHP支持两种构造方法:  __construct和_initialize(ThinkPHP内置的构造方法)。

测试URL为:  http://oa.com/index.php/Admin/User/add

修改用户控制器类文件UserController.class.php 如下:

1、__construct构造方法

修改中间控制器类CommonController.class.php 如下:

说明:empty() 5.5 版本之后支持表达式,否则会报如下错误:

运行结果如下:

中间控制器必须先构造父类,才能使用父类的方法,修改代码如下:

运行结果:

 2、_initialize构造方法,如下:

通过_initialize构造方法同样可以实现上述效果,无需构造父类,查看基类控制器代码如下:

通过Controller.class.php中的架构函数可以看出,只要存在 _initialize方法,就会直接调用来初始化控制器,因此ThinkPHP内置

的构造方法无需再构造父类。

原文地址:https://www.cnblogs.com/splendid/p/9642219.html

时间: 2024-11-09 08:25:13

ThinkPHP实现登录限制时__construct和_initialize的区别的相关文章

关于Jmeter测试移动端应用时提示非法登录,不是合法的登录设备时的解决办法

当Jmeter测试移动端应用时提示非法登录,不是合法的登录设备时的解决办法:只需要在jmeter的http信息头管理器中配置相应的设备信息,可通过抓包工具得到:即头信息Header中的Miscellaneous域的所有值:一般的设备配置是这样的: ua: AndroidappVersion: 2.6.0osVersion: 5.1.1terminalType: AndroiddeviceType: V8deviceShopId: 822290053111654terminalId: YP6100

sqlplus "/as sysdba"登录数据库时出现错误

在数据库刚安装成功时用sqlplus "/as sysdba"登录数据库时出现错误,有可能是以下两个原因: 1.SQLPLUS的处理程序一般是在oracle安装目录下的$ORACEL_HOME/BIN目录中,这里面应该有sql.exe的可执行文件,如果没有,则说明oracle数据库的安装文件有问题 2.如果有sql.exe文件,有可能是windows中的配置文件没有设置好 右击我的电脑-->高级系统设置-->环境配置-->点击下面的PATH,加一个:号,粘贴sql.e

CentOS命令登录MySQL时,报错ERROR 1045 (28000):

CentOS命令登录MySQL时,报错ERROR 1045 (28000): Access denied for user [email protected] (using password: NO)错误解决方法 1.停用mysql服务:# /etc/rc.d/init.d/mysqld stop 2.输入命令:# mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 3.登入数据库:# mysql -u root my

java在线聊天项目 swt可视化窗口Design 登录框注册按钮点击改变窗口大小——出现注册面板 实现打开登录框时屏幕居中

登录框注册按钮点击改变窗口大小--出现注册面板  首先用swt可视化设计登录窗口如下图: 此时窗口高度为578 没点击注册时高度为301(可自己定) 注意:注册用户的Jpanel 的border选择Title Border,title属性是"注册用户"    布局Layout选择Absolute Layout 接着,对话框窗口设计好后,双击注册按钮,进行代码编辑,在注册按钮的监听代码中增加一个if判断,当等于301,就给改为窗口高度578,否则改为301 因为使用的是匿名内部类,不能直

chsh---更换登录系统时使用的shell

chsh命令 chsh命令用来更换登录系统时使用的shell.若不指定任何参数与用户名称,则chsh会以应答的方式进行设置. 语法 chsh(选项)(参数) 选项 -s<shell 名称>或--shell<shell 名称>:更改系统预设的shell环境.: -l或--list-shells:列出目前系统可用的shell清单: -u或--help:在线帮助: -v或-version:显示版本信息. 参数 用户名:要改变默认shell的用户. 实例 查看系统安装了哪些shell的两种

登录RedHat时,为什么会在屏幕上看到奇怪的字符,特别是当查看手册页时

有SecureCRT用户使用SecureCRT会遇到这样的问题,当我登录RedHat时,为什么我在屏幕上看到奇怪的字符,特别是当我查看手册页时您遇到的问题是RedHat默认使用UTF-8对其输出进行编码.您使用的SecureCRT?版本不支持UTF-8编码输出,或者对于正在使用的会话,输出编码未设置为UTF-8. 以下是此问题的三种可能解决方案: 解决方案1:为正在使用的会话启用UTF-8输出编码 如果您使用的是4.0.1之前的SecureCRT版本,则需要更新您的版本.根据您购买SecureC

Centos登录Mysql时忘记密码

Centos登录Mysql时忘记密码解决办法: 1.停止Mysql服务(在mysql目录下) ./support-files/mysql.server stop 2.修改配置文件/etc/my.cnf 在[mysqld]下添加skip-grant-tables 意思是忽略密码 保存并退出 3.启动Mysql(在Mysql目录下) /support-files/mysql.server start 4.修改密码 Welcome to the MySQL monitor. Commands end

制作网页时Div与Table的区别

1.制作效率 我想没人反对表格的制作效率要高于Div的效率.很明显Div布局代码全部都要手写.即使你在熟悉代码,也没有 Dreamweaver生成来的快吧!所以Table可以很容易建立起结构化的界面,通过table自身的参数定义,我们能把页面布局很快定义成我们所需要的效果. 2.浏览器的兼容问题 table和div在兼容问题中,table更具有优势. 我们常用的IE6.0,IE7.0火狐Firefox浏览器对div css设置上非常挑剔,往往同一个css在2种浏览器上会有不同的结果,对设计制作人

【转载】Spring加载resource时classpath*:与classpath:的区别

免责声明:     本文转自网络文章,转载此文章仅为个人收藏,分享知识,如有侵权,请联系博主进行删除.     原文作者:kyfxbl     原文地址: spring配置中classpath和classpath*的区别   在spring配置文件里,可以用classpath:前缀,来从classpath中加载资源  比如在src下有一个jdbc.properties的文件,可以用如下方法加载: <bean id="propertyConfigurer" class="