我正在使用laravel 5.1。我想使用XML解析器,我搜索并发现Orchestra主要用于。所以我已经完成了documentation给出的所有步骤来安装和配置。我在Orchestra\Parser\XmlServiceProvider::class
的{{1}}部分和providers
部分的config/app.php
部分添加了'XmlParser' => Orchestra\Parser\Xml\Facade::class
。
现在在我的控制器中,我在控制器的顶部添加了名称空间aliases
。但是当我尝试在我的行动中使用它的功能时,比如
use Orchestra\Parser\Xml\Facade;
它会生成错误说明,
$xml = XmlParser::load($xml_document);
所以我想知道Class 'App\Http\Controllers\XmlParser' not found
中有没有其他方法可以使用这些包,如果有人使用它,我会对Laravel 5.1
做错事。
答案 0 :(得分:16)
由于文档已经描述了外观别名的注册:
'XmlParser' => Orchestra\Parser\Xml\Facade::class,
您可以使用\XmlParser::load()
,也可以导入别名。
use XmlParser;
或导入完整的命名空间。
use Orchestra\Parser\Xml\Facade as XmlParser;
答案 1 :(得分:1)
看起来好像是在控制器内搜索它..
Class' App \ Http \ Controllers \ XmlParser'找不到
因此:
$xml = XmlParser::load($xml_document);
需要:
$xml = \XmlParser::load($xml_document);
应解决此问题
答案 2 :(得分:-1)
在Laravel 5.1中,控制器位于命名空间中。 XmlParser位于其他名称空间中。您需要在控制器中包含该命名空间。
<?php
namespace Orchestra\Parser\Xml; // Maybe this one is different
class Controller...
您还可以添加\以使其正常工作。
$xml = XmlParser::load($xml_document);