CakePHP Media Plugin Helper问题

时间:2011-02-17 18:25:02

标签: cakephp plugins helper

我正在尝试使用CakePHP的Media Plugin显示上传的图像。

我将助手添加到控制器助手数组中:var $helpers = array('Media.Media');。然后,在我看来,我有这段代码:echo $media−>file($news['Attachment'][0]['dirname'].DS.$news['Attachment'][0]['basename']);。但问题是,它输出了这个错误:

Undefined variable: media− [APP/views/news/view.ctp, line 3]

可能是什么问题?

顺便说一下,如果一个插件在app / plugin / users / models / user.php中有一个模型用户,我在app / models文件夹中创建一个名为User的新模型,其中一个将被加载?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

如果您使用1.3.x首先通过$ this-> HelperName-> method()引用帮助程序,可能会在某些方法中设置一个名为$ media的变量。你可以通过var_dump($ media);

来检查这个

另一个选择是某些东西可能未设置它。非常奇怪的是你有辅助设置但是没有设置变量。它也可能是由于将$ helpers数组添加到错误的控制器,您可以尝试将其添加到app_controller并查看是否有效。如果它,你把它放在错误的地方。

如果我的第二个问题是正确的,并且我们正在谈论自动加载,插件控制器将首先在自己的插件目录中查找模型,如果在那里找不到,它将回退到app / models目录

如果你通过$ uses数组手动加载它,它取决于蛋糕的版本以及你如何做。在以前的版本1.x甚至$ uses = array('User');会加载插件模型,因为cake会自动添加插件前缀。这已经改变了2.0 afaik。

对于加载模型的其他方法,例如$ this-> loadModel('User);将从app / models加载$ this-> loadModel('PluginName.User')将从app / plugins / plugin_name / models目录加载。

编辑: 你是对的有错误显示$ media-并且有问题。你从某个网站复制了那些代码吗? - 不是 - 你在代码中有一个utf8字符,这是它的抱怨。