繁体   English   中英

Cakephp Helper在某些视图上触发错误

[英]Cakephp Helper fire Error on certain view

我的帮手有些奇怪。 首先,我刚刚开始使用CakePHP和MVC。 也许我做错了什么,但找不到。

对于我的应用程序,我必须使用Xml文件来处理我的texte语言(我知道处理语言的方法有很多,但我需要使用这种语言)。 所以我创建了一个帮助器(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定义明确。

如果有人可以向我解释什么地方错了,那将非常感激!

问题是,您使用的XmlHelper 的XML类。

基本上,您正在使用App:uses(); 错误的,它只能一次包含一个类,因此您需要添加另一行:

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

我真的不能用Path/To/Xml.php帮助您,因为我不知道您将其保存在何处。 如果它是一个外部库,则应确实位于Vendors文件夹中。 有关更多信息,请参见此处

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM