栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > PHP > php开源框架 > tpAdmin

前置方法before支持 - tpAdmin 文档

tpAdmin 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

前置方法before支持 - tpAdmin 文档


>[warning] 为了规范代码,已废弃 _before_action 的前置方法,修改为 beforeAction 驼峰式写法

##使用方法
在控制器执行 foo 方法前,定义 beforeFoo 方法,就可以在执行 foo 方法前执行 beforeFoo 方法,可以用来做过滤和模板赋值数据添加,例如
```
class Test extend Controller
{
public function foo()
{
echo "foo
";
}

protected function beforeFoo()
{
echo "beforeFoo
";
}
}
// 输出结果
beforeFoo
foo

```
>[warning] 为了安全,请将前置控制器的访问属性设置为 protected,防止前置控制器被当做开放方法可以通过链接访问得到

##实现方式
###不修改官方源码:
>[info] 只要继承该控制器才能使用,推荐

在公共控制器,例如tpadmin的公共控制器application/admin/Controller.php文件的_initialize方法里加上:
```
// 前置方法
$beforeAction = "before" . ucfirst($this->request->action());
if (method_exists($this, $beforeAction)) {
$this->$beforeAction();
}
```
###直接修改官方源码:
>[warning] 任何地方可以使用,但是 ThinkPHP5 框架更新会出现问题,不建议修改官方源码,修改后一定要做标记,下次更新再同步去改

在thinkphp/library/think/Controller.php 第63行加上:
```
// 前置方法
$beforeAction = "before" . ucfirst($this->request->action());
if (method_exists($this, $beforeAction)) {
$this->$beforeAction();
}
```

>[info] 控制器方法调用不区分方法名大小写,不用担心大小写问题

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/214018.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号