1

ヘルパーに何か変なものができました。まず、cakePHP と MVC を使い始めました。たぶん私は何か間違ったことをしていますが、何が見つかりません。

私のアプリでは、テキストの言語を処理するために Xml ファイルを使用する必要があります (言語を処理するにはさまざまな方法があることは知っていますが、これを使用する必要があります)。だから私はヘルパーを作成します(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 は明確に定義されています。

誰かが私に何が間違っているかを説明できれば、それは非常に高く評価されます!

4

1 に答える 1

1

問題は、 XmlHelperで使用しているXMLクラスです。

基本的に、App:uses();間違って使用しています。一度に1つのクラスを含めるためにのみ使用できるため、別の行を追加する必要があります。

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

Path/To/Xml.phpあなたがそれをどこに保存したのかわからないので、私はあなたを少し助けることはできません。外部ライブラリの場合は、実際にはベンダーフォルダにあるはずです。詳細については、こちらをご覧ください

于 2013-02-21T11:36:11.143 に答える