控制器查看:调用未定义的函数

时间:2014-08-24 23:38:09

标签: php laravel

我有一个名为ForumController的简单类,最终将在我的网站上使用其中的一些方法。现在有两个:

class ForumController extends BaseController { 

    // Parses XML feed to JSON
    public static function parseXML($xml) {
        $file = file_get_contents($xml);
        $fileContents = str_replace(array("\n", "\r", "\t"), '', $file);
        $fileContents = trim(str_replace('"', "'", $fileContents));
        $simpleXML = simplexml_load_string($fileContents);
        $json = json_encode($simpleXML);

        return $json;

    }

    public static function getForums($xml){
        $feed = parseXML($xml);
        return $feed;
    }

}

我在视图中使用它,所以我了解到我可以在IoC容器中调用它吗?所以我制作了一个IoC.php并将其包含在bootstrap.php文件中。

IoC.php:

<?php 

    View::composer('getForums', 'ForumController');

现在我想在我的观点中这样称呼它。

{{ ForumController::getForums('http://someForum.com/forum/syndication.php?fid=4,140,22,62,134&limit=5'); }}

但是,像往常一样,我做错了什么。错误:

Call to undefined function parseXML()

这是我第一次尝试使用除HomeController之外的其他控制器,所以我确信我做错了什么。我如何得到我想要的结果?

1 个答案:

答案 0 :(得分:1)

您需要将parseXML()作为类方法而不是函数调用。在这种情况下,使用selfstatic(当您从同一个类中调用它时不会有任何区别,但是如果parseXML()被继承,{ {1}}将在运行时将其绑定到类。

static