我和我的助手有点奇怪。 首先,我刚开始使用cakePHP和MVC。 也许我做错了但却找不到什么。
对于我的应用程序,我必须使用Xml文件来处理我的texte语言(我知道有很多不同的方法来处理语言,但我需要使用这个)。 所以我创建了一个Helper(XmlHelper.php,在View \ Helper \ Xmlhelper.php中)
<?php
App::uses('AppHelper', 'View/Helper','Xml');
class XmlHelper extends AppHelper {
var $xml = array();
var $name = 'Xml';
var $filename = '';
public function getXml($filename, $language, $view) {
$this->xml = Xml::toArray(Xml::build('Xml/'.$filename.'.xml')); //THE LINE
$this->xml = $this->xml[$filename][$language][$view];
$this->filename = $filename;
}
public function readXml($tags) {
$tempXml = $this->xml;
foreach ($tags as $tag){
$tempXml = $tempXml[$tag];
}
return $tempXml;
}
}
我的控制器得到了:
class EventsController extends Controller {
public $helpers = array('Html', 'Form','Xml');
public $components = array('Session');
对于我的大多数观点,一切都很好,但其他一些只是火
Error: Class 'Xml' not found File:
C:\wamp\www\cakephp\app\View\Helper\Xmlhelper.php Line: 11
在我看来,我打电话:
<?php $this->Xml->getXml('dico',$ln,'thanks'); ?>
<h1><?php echo $this->Xml->readXml(array('texte'));?></h1>
ln定义明确。
如果有人可以解释我的错误,那将是非常尴尬的!
答案 0 :(得分:1)
问题是您正在使用 XmlHelper中的XML类。
基本上,您使用App:uses();
错误,它一次只能用于包含一个类,因此您需要添加另一行:
App::uses('AppHelper', 'View/Helper');
App::uses('Xml', 'Path/To/Xml.php');
我无法真正帮助你Path/To/Xml.php
位,因为我不知道你在哪里保存它。如果它是外部库,应该真的在Vendors文件夹中。 See here for more info