think\Loader::action PHP Method

action() public static method

远程调用模块的操作方法 参数格式 [模块/控制器/]操作
public static action ( string $url, string | array $vars = [], string $layer = 'controller', boolean $appendSuffix = false ) : mixed
$url string 调用地址
$vars string | array 调用参数 支持字符串和数组
$layer string 要调用的控制层名称
$appendSuffix boolean 是否添加类名后缀
return mixed
    public static function action($url, $vars = [], $layer = 'controller', $appendSuffix = false)
    {
        $info = pathinfo($url);
        $action = $info['basename'];
        $module = '.' != $info['dirname'] ? $info['dirname'] : Request::instance()->controller();
        $class = self::controller($module, $layer, $appendSuffix);
        if ($class) {
            if (is_scalar($vars)) {
                if (strpos($vars, '=')) {
                    parse_str($vars, $vars);
                } else {
                    $vars = [$vars];
                }
            }
            return App::invokeMethod([$class, $action . Config::get('action_suffix')], $vars);
        }
    }

Usage Example

Example #1
0
/**
 * 渲染输出Widget
 * @param string $name Widget名称
 * @param array $data 传人的参数
 * @return mixed
 */
function W($name, $data = [])
{
    return \think\Loader::action($name, $data, 'Widget');
}
All Usage Examples Of think\Loader::action