2013-02-21 18 views
1

我的幫手有些奇怪。首先,我剛開始使用CakePHP和MVC。 也許我做錯了什麼,但找不到什麼。Cakephp Helper在某些視圖上發生錯誤

對於我的應用程序,我必須使用一個XML文件來處理語言我texte(我知道有很多人型動物的方式來處理語言,但我需要使用這一個)。 所以我創建一個助手(XmlHelper.php,在查看\助手\ 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被很好地定義。

如果有人能解釋我什麼是錯的,它會很apreciated!

回答

1

的問題是你使用您XmlHelper XML類。

基本上,你正在使用App:uses();錯了,它只能用於包括一個班的時間,所以你需要添加另一條線路:

App::uses('AppHelper', 'View/Helper'); 
App::uses('Xml', 'Path/To/Xml.php'); 

我真的不能幫你的Path/To/Xml.php位,因爲我不知道你保存了它的位置。如果它是外部庫,應該真的在供應商文件夾中。 See here for more info

+0

做得好,它的用途不同的是,我必須使用: 應用::使用(「XML」,「實用」); 非常感謝 – Viluredfish 2013-02-21 11:45:11