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

淘淘IT

记录工作学习中的点点滴滴

本站创建于2017年,用于记录工作和学习中遇到的问题。同时,不断提升网站的使用体验,增加新的功能。

757093 1186 11
最新评论
@xiaoniba 好像是编码GBK和utf-8的区别,请看下我摘抄的一篇文章,里面有介绍http://taotaoit.com/article/details/885.html,你可以尝试下是否可以
评 tp5.1中字段别名是汉字,提示错误:不支持的数据表达式
\x7f-\xff 这个匹配什么东东,会不会出现安全问题??? 改成这样如何 if ($strict && !preg_match('/^[\w\.\*\x{4e00}-\x{9fa5}]+$/u', $key)) {
评 tp5.1中字段别名是汉字,提示错误:不支持的数据表达式
完美解决 牛逼
评 tp5.1中字段别名是汉字,提示错误:不支持的数据表达式
评 tp5.1中字段别名是汉字,提示错误:不支持的数据表达式
完美解决
评 tp5.1中字段别名是汉字,提示错误:不支持的数据表达式
文章标签更多
ThinkPHP (119)
Mysql (25)
DedeCms (28)
jQuery (27)
证件照 (1)
setInc (3)
setDec (3)
onclick (3)
打开边栏(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了,参考上面实例

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

相关推荐
ThinkPHP3.2.3打印sql语句
ThinkPHP | 2018-12-29 1915
方法一 echo M()->getLastSql(); 方法二 echo M()->_sql();
ThinkPHP模板中volist输出数组的键名
ThinkPHP | 2017-04-22 1679
php中输出数组的键名 $arr = array('key1'=>1,'key2'=>2); foreach($arr as $key=>$val) { echo $key; } thinkphp模板中怎么输出数组的键名呢? 错误代码一: <volist name="aboutList"...
评论:0条
评论加载中...
发表评论