Ошибка плагина CakePHP Media

Я устанавливаю медиа-плагин с моим приложением Cake 2.1. Я использовал плагин с Cake 2.0 раньше, и у меня не было никаких проблем. Теперь я получаю это сообщение об ошибке, когда пытаюсь загрузить файл:

Fatal error: Call to a member function pwd() on a non-object in /home/fractalw/public_html/cms/app/Plugin/Media/Model/Behavior/CouplerBehavior.php on line 141

Вот соответствующая часть моего файла bootstrap.php: CakePlugin::load('Media');

require APP . 'Plugin' . DS . 'Media' . DS . 'Config' . DS . 'core.php';

$thumbnail = array('fitCrop' => array(100, 100));
$small = array('fitCrop' => array(200, 200));
$large = array('fit' => array(700, 10000));
$smallthumbnail = array('fitCrop' => array(75, 75));
$tinythumbnail = array('fitCrop' => array(35, 35));

Configure::write('Media.filter', array('default' => array(
    'audio' => array(),
    'document' => array(),
    'generic' => array(),
    'image' => compact('small', 'thumbnail', 'smallthumbnail', 'large', 'tinythumbnail'),
    'video' => compact('medium', 'large')
)));

... И моя модель, File.php:

public $actsAs = array(
    'Media.Transfer',
    'Media.Coupler',
    'Media.Generator',
    'Media.GeneratedDeletable',
    'Media.Meta',
    'Containable'
);

public $validate = array(
    'file' => array(
        'mimeType' => array(
            'rule' => array('checkMimeType', false, array('image/jpeg', 'image/png', 'image/gif'))
        )
    )
);

Я получаю сообщение об ошибке выше, когда я отправляю форму, которая загружает файл. Рассматриваемая строка в CouplerBehavior.php:

str_replace('\\', '/', Folder::slashTerm($File->Folder->pwd()))

person Will    schedule 05.10.2012    source источник


Ответы (1)


Хорошо, я сделал глупость.

Я назвал свою модель File. Очевидно, это имя класса File в CakePHP. Когда файл загружается, медиа-плагин превращает его в новый объект File, как в модели. Вместо этого я переименовал свою модель в приложении. Почему так происходит - ты целую вечность думаешь о проблеме, а потом, как только задашь вопрос в интернете, находишь ответ...

person Will    schedule 05.10.2012