ThinkPHP跨模块跨控制器调用方法
web ThinkPHP 2020-07-10 1881 0
关于本站

“最难不过坚持”

本人承接扒站仿站,php网站维护,病毒查杀,网站编辑,网站改版,html制作

有需要网站维护,改版,病毒查杀,网站编辑,网站备案,html制作等相关的工作可以联系我。
本人有多年相关工作经验,也可提供免费咨询,交个朋友。
有需要探讨问题的朋友,也可以加我微信,共同探讨!
微信:15011482830 QQ:408917339

6398441 2609 39
最新评论
https://jueru.net/
评 留言
:weixiao:
评 留言
:shuijiao: :weiqu: :zhenbang: :leng:
评 留言
:yiwen: :yiwen: :yiwen: :yiwen:
评 EasySass: could not generate CSS file. See Output panel for details.
这个业务逻辑多少都有点奇怪了,阅读浏览次数增值在新闻详情页的控制器方法里setInc,这怎么还写进模型事件里了。如果非要用onAfterRead也可以,把新闻文章的内容单独分出来一个news_content表,然后把它和news做关联,然后给news_content表的onAfterRead事件做增值处理,这样点进新闻页内查询到文章内容时才会触发它。
评 TP6模型事件-查询后onAfterRead不好用
文章标签更多
ThinkPHP (254)
Mysql (58)
DedeCms (33)
jQuery (67)
证件照 (1)
setInc (4)
setDec (4)
onclick (5)
打开边栏(ESC) 关闭边栏(ESC)
跨控制器调用方法

1. 先造对象,再调用里面的方法

$sc=new \Home\Controller\IndexController();  用绝对路径找
echo $sc->ShuChu();

2.

$sc=new IndexController();  用相对路径

echo $sc->ShuChu();

还可以使用thingkphp中的快捷方法

1. $sc=A("Index");      使用TP框架的快捷方法A来创建控制器对象  ()内直接写控制器名

【跨模块调用】

$sc=A("Admin/Main");   前面加上模块名 模块名/控制器名

【R方法】

调用对象 并且调用里面的方法

使用TP框架的R方法来自动调用某个控制器里的某个操纵方法

echo R("Index/ShuChu");  控制器名/方法名

实例:

<?php
namespace Home\Action;
/**
 * ============================================================================
 * 商城
 * ============================================================================
 * 技术分类控制器
 */
class CeshiAction extends BaseAction{
	/**
	 * 跨控制器调用方法-用绝对路径找
	 */
	public function ceshi1(){
		$sc=new \Admin\Action\CeshiAction();
		$sc->ceshi();
	}
	/**
	 * 跨控制器调用方法-用相对路径,不能跨模块
	 */
	public function ceshi2(){
		$sc=new CeshiAction();
		$sc->ceshi();
	}
	/**
	 * 跨控制器调用方法-用TP框架的快捷方法A
	 */
	public function ceshi3(){
		$sc = A('Admin/Ceshi');
		$sc->ceshi();
	}
	/**
	 * 跨控制器调用方法-用TP框架的快捷方法R,直接调用里面的方法
	 */
	public function ceshi4(){
		R("Admin/Ceshi/ceshi");
	}
	
};
?>
Admin/Action/CeshiAction.class.php代码:

<?php
namespace Admin\Action;
/**
 * ============================================================================
 * 商城
 * ============================================================================
 * 技术分类控制器
 */
class CeshiAction extends BaseAction{
	/**
	 * 跳到新增/编辑页面
	 */
	public function ceshi(){
		echo '测试5';
	}
};
?>
访问控制器的名称是通过DEFAULT_C_LAYER设置的,默认是Controller。
在配置文件里设置
'DEFAULT_C_LAYER' =>  'Action',
控制器名称就变成Action了,参考上面实例

版权声明:本篇文章来源于网络。 来源链接

相关推荐
ThinkPHP 3.2.3 Runtime\Logs日志文件太多怎么关闭日志功能
ThinkPHP | 2019-11-05 6805
'LOG_RECORD' => false, // 默认不记录日志 'LOG_TYPE' => 'File', // 日志记录类型 默认为文件方式 'LOG_LEVEL' => 'EMERG,ALERT,CRIT,ERR',// 允许记录的...
ThinkPHP3.2.3打印sql语句
ThinkPHP | 2018-12-29 5391
方法一 echo M()->getLastSql(); 方法二 echo M()->_sql();
评论:0条
评论加载中...
发表评论