首页 后端开发 php教程 thinkphp url中action 没定义 也能访问到模板

thinkphp url中action 没定义 也能访问到模板

Jun 13, 2016 pm 12:16 PM
action method nbsp thinkphp this

thinkphp url中action 没有定义 也能访问到模板?
thinkphp   url中action 没有定义  也能访问到模板?

最近刚刚开始接触thinkphp   的框架,但是在看公司源码的时候,发现url中的action在类中没有对应的实现方法。

thinkphp   中有空操作和空模块之说, 我本来以为是通过空操作来实现的。

最终确认的结果:根本没有经过模块,直接把action对应的模板给display了。

本人刚刚接触thinkphp 不知道为什么  求大神帮忙
------解决思路----------------------
你看下配置里面是不是开启了路由功能,路由功能可以伪造地址;不知道这个是不是你现在遇到的问题。
------解决思路----------------------

引用:
你看下配置里面是不是开启了路由功能,路由功能可以伪造地址;不知道这个是不是你现在遇到的问题。

------解决思路----------------------
在进入用户自定义的action之前,会自动检测是否存在该方法
如果没有就直接读模板,连模板都没有就报一个该方法不存在之类的错误
------解决思路----------------------
引用:
Quote: 引用:

在进入用户自定义的action之前,会自动检测是否存在该方法
如果没有就直接读模板,连模板都没有就报一个该方法不存在之类的错误


谢谢你的解释,你能提供thinkphp官网对此说明的链接给我吗?


这个...没仔细看过官方的,根据它的表现完全可以逆推出原理
如果你感兴趣,可以完整阅读tp的源码
------解决思路----------------------
见 ThinkPHP/Library/Think/Controller.class.php  __call 方法
    /**<br />     * 魔术方法 有不存在的操作的时候执行<br />     * @access public<br />     * @param string $method 方法名<br />     * @param array $args 参数<br />     * @return mixed<br />     */<br />    public function __call($method,$args) {<br />        if( 0 === strcasecmp($method,ACTION_NAME.C('ACTION_SUFFIX'))) {<br />            if(method_exists($this,'_empty')) {<br />                // 如果定义了_empty操作 则调用<br />                $this->_empty($method,$args);<br />            }elseif(file_exists_case($this->view->parseTemplate())){<br />                // 检查是否存在默认模版 如果有直接输出模版<br />                $this->display();<br />            }else{<br />                E(L('_ERROR_ACTION_').':'.ACTION_NAME);<br />            }<br />        }else{<br />            E(__CLASS__.':'.$method.L('_METHOD_NOT_EXIST_'));<br />            return;<br />        }<br />    }<br />
登录后复制
这是一种容错技术,并不需要在使用手册中说明
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
4 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.聊天命令以及如何使用它们
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

10种在 Windows 11 上调整亮度的方法 10种在 Windows 11 上调整亮度的方法 Dec 18, 2023 pm 02:21 PM

屏幕亮度是使用现代计算设备不可或缺的一部分,尤其是当您长时间注视屏幕时。它可以帮助您减轻眼睛疲劳,提高易读性,并轻松有效地查看内容。但是,根据您的设置,有时很难管理亮度,尤其是在具有新UI更改的Windows11上。如果您在调整亮度时遇到问题,以下是在Windows11上管理亮度的所有方法。如何在Windows11上更改亮度[10种方式解释]单显示器用户可以使用以下方法在Windows11上调整亮度。这包括使用单个显示器的台式机系统以及笔记本电脑。让我们开始吧。方法1:使用操作中心操作中心是访问

如何在Safari中关闭iPhone的隐私浏览身份验证? 如何在Safari中关闭iPhone的隐私浏览身份验证? Nov 29, 2023 pm 11:21 PM

在iOS17中,Apple为其移动操作系统引入了几项新的隐私和安全功能,其中之一是能够要求对Safari中的隐私浏览选项卡进行二次身份验证。以下是它的工作原理以及如何将其关闭。在运行iOS17或iPadOS17的iPhone或iPad上,如果您在Safari浏览器中打开了任何“无痕浏览”标签页,然后退出会话或App,Apple的浏览器现在需要面容ID/触控ID认证或密码才能再次访问它们。换句话说,如果有人在解锁您的iPhone或iPad时拿到了它,他们仍然无法在不知道您的密码的情况下查看您的隐私

thinkphp项目怎么运行 thinkphp项目怎么运行 Apr 09, 2024 pm 05:33 PM

运行 ThinkPHP 项目需要:安装 Composer;使用 Composer 创建项目;进入项目目录,执行 php bin/console serve;访问 http://localhost:8000 查看欢迎页面。

Win10/11数字激活脚本MAS 2.2版本重新支持数字激活 Win10/11数字激活脚本MAS 2.2版本重新支持数字激活 Oct 16, 2023 am 08:13 AM

著名的激活脚本MAS2.2版本重新支持数字激活,方法源于@asdcorp及团队,MAS作者称之为HWID2。https://github.com/massgravel/Microsoft-Activation-Scripts下载gatherosstate.exe(非原版,已改造),带参数运行它,生成门票GenuineTicket.xml。先看一下原先的方法:gatherosstate.exePfn=xxxxxxx;DownlevelGenuineState=1再对比一下最新方法:gatheros

thinkphp有几个版本 thinkphp有几个版本 Apr 09, 2024 pm 06:09 PM

ThinkPHP 拥有多个版本,针对不同 PHP 版本而设计。主要版本包括 3.2、5.0、5.1 和 6.0,而次要版本用于修复 bug 和提供新功能。当前最新稳定版本为 ThinkPHP 6.0.16。在选择版本时,需考虑 PHP 版本、功能需求和社区支持。建议使用最新稳定版本以获得最佳性能和支持。

thinkphp怎么运行 thinkphp怎么运行 Apr 09, 2024 pm 05:39 PM

ThinkPHP Framework 的本地运行步骤:下载并解压 ThinkPHP Framework 到本地目录。创建虚拟主机(可选),指向 ThinkPHP 根目录。配置数据库连接参数。启动 Web 服务器。初始化 ThinkPHP 应用程序。访问 ThinkPHP 应用程序 URL 运行。

laravel和thinkphp哪个好 laravel和thinkphp哪个好 Apr 09, 2024 pm 03:18 PM

Laravel 和 ThinkPHP 框架的性能比较:ThinkPHP 性能通常优于 Laravel,专注于优化和缓存。Laravel 性能良好,但对于复杂应用程序,ThinkPHP 可能更适合。

DJI Osmo Action 5 Pro:发布日期已定,零售商透露发布价格可能会低于 GoPro Hero 13 Black DJI Osmo Action 5 Pro:发布日期已定,零售商透露发布价格可能会低于 GoPro Hero 13 Black Sep 04, 2024 am 06:51 AM

大疆尚未确认推出新运动相机的计划。相反,GoPro 今年似乎会领先于竞争对手,并透露将于 9 月 4 日推出两款新的运动相机。

See all articles