以前tp3.2版本跨控制器調用方法的時候用的是A方法 即
$IndexController = A("index");
return $IndexController->index();
這樣就能擷取index控制器下面index方法的資料了 。但是TP5這個方法用不了
是應為TP5取消了A方法 換成了controller
/**
* 用于執行個體化通路控制器
* @param string $name 控制器名
* @param string $path 控制器命名空間(路徑)
* @return Think\Controller|false
*/
function controller($name,$path=''){
$layer = C('DEFAULT_C_LAYER');
if(!C('APP_USE_NAMESPACE')){
$class = parse_name($name, 1).$layer;
import(MODULE_NAME.'/'.$layer.'/'.$class);
}else{
$class = ( $path ? basename(ADDON_PATH).'\\'.$path : MODULE_NAME ).'\\'.$layer;
$array = explode('/',$name);
foreach($array as $name){
$class .= '\\'.parse_name($name, 1);
}
$class .= $layer;
}
if(class_exists($class)) {
return new $class();
}else {
return false;
}
}
同一個controller檔案夾下的控制器可以直接調用 即 $index = controller('Index');
return $index->index();
不同控制器下的 檔案想要掉用怎麼辦呢?比如mobile子產品下想調用HOME子產品下的短信發送方法
首先要new 這個控制器 在進行調用就可以了use app\common\controller\Sms;
$SmsController = new Sms;
return $SmsController ->getSms();