2013-02-21 2 views
1

У меня что-то странное с моим помощником. Прежде всего, я только начал работать с cakePHP и MVC. Возможно, я делаю что-то неправильно, но не могу найти что.Cakephp Helper fire Ошибка при определенном виде

Для моего приложения я должен использовать 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 четко определен.

Если кто-то может объяснить мне, что не так, он будет очень оценен!

ответ

1

Проблема заключается в том, что XML-класс используется внутри вашего XmlHelper.

В принципе, вы используете App:uses(); неправильно, он может быть использован только включать один класс в то время, так что вам нужно добавить еще одну строку:

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

Я не могу помочь вам с Path/To/Xml.php бит, так как я не знаю, где вы его сохранили. Должно быть действительно в папках Vendors, если это внешняя библиотека. See here for more info.

+0

Хорошая работа, это эффективно, я должен использовать: App :: uses ('Xml', 'Utility'); Большое спасибо – Viluredfish

Смежные вопросы