【问题标题】:CakePHP Media Plugin Helper problemCakePHP Media Plugin Helper 问题
【发布时间】:2011-06-29 07:27:23
【问题描述】:

我正在尝试使用 CakePHP 的媒体插件显示上传的图像。

我将助手添加到控制器助手数组中: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 中有一个模型 User 并且我在 app/models 文件夹中创建了一个名为 User 的新模型,将会加载哪个模型?

提前感谢您的帮助!

【问题讨论】:

    标签: cakephp plugins helper


    【解决方案1】:

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

    另一个选项是某些东西可能取消了它。您设置了帮助程序但未设置变量,这很奇怪。这也可能是由于将 $helpers 数组添加到了错误的控制器,您可以尝试将其添加到 app_controller 并查看是否有效。如果是的话,你放错地方了。

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

    如果你是通过 $uses 数组手动加载它,它取决于 cake 的版本和你是怎么做的。在以前的版本 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 字符,这就是它所抱怨的。

    【讨论】:

    • 感谢您的回答!不幸的是,您的解决方案都不起作用。如果我使用$this->Media->file(),我会收到以下错误:Undefined property: View::$Media− [APP/views/news/view.ctp, line 3]。将 Helper 添加到 AppController 会产生相同的结果。如果我debug($media),它会显示一个完整的数组,所以它被设置了。还有其他建议吗?关于我的第二个问题,您是对的,我感谢您澄清这个问题。
    • 插件助手的使用和普通助手一样吗?我的意思是,它不应该用作$this->MediaMedia$this->Media_Media吗?
    • 不,它们的加载方式不同,因此 var $helpers = array('Media.Media');对于插件和 var $helpers = array('Media');对于非插件。
    • 关于第一个问题,$this->Media 应该是一个对象(或 $media)而不是一个数组。把变量的内容记下来
    • 我的错,它是一个对象。它包含(仅部分,因为它太长):MediaHelper Object ( [helpers] => Array ( [0] => Html ) [tags] => Array ( [audio] => %s%s [video] => %s%s [source] => [object] => %s%s [param] => )
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多