【发布时间】:2014-05-15 21:16:47
【问题描述】:
我正在使用 CakePHP 的插件 - AjaxMultiUpload(一个很好的插件 :-) - 但我有一个关于如何更改/访问作为插件一部分的控制器中定义的变量的问题。
我以前用过这个插件,很喜欢。但是我试图根据我将组件附加到哪个控制器来限制允许上传的文件类型。
在插件中有一个控制器 - UploadsController.php。在这个类中,有一个公共变量:
// list of valid extensions, ex. array("jpeg", "xml", "bmp")
public $allowedExtensions = array();
如果我将其更改为:
public $allowedExtensions = array('mp3');
当我尝试上传 .jpg 文件时,会发出一条错误消息(正如人们所希望的那样 :-)。
在我的控制器(轨道)中,我附加了 AjaxMultiUpload 插件。有用。在我的 Tracks 控制器的 beforeFilter() 方法中,我放置了以下行:
$this->Upload->allowedExtensions = array('mp3');
这没有效果。 (顺便说一句,没有任何警告告诉我我试图访问不存在的东西)。
我不想通过在插件的控制器中硬编码来更改数组 allowedExtensions 的内容。这很糟糕,原因有两个:1)插件的可更新性和 2)我想根据我的哪个控制器(轨道、图像等)插件更改限制(例如,音频文件类型与图像文件类型)附在上面。
我不明白的是组件(附加到 Tracks 控制器)和作为插件一部分的 UploadsController 之间的关系。什么实例化了作为插件一部分的 UploadsController?这会自动发生吗?
谁能帮忙?
谢谢, 肯
【问题讨论】:
标签: php cakephp cakephp-2.3