Файловая сущность без поля ошибки приводит к тому, что Burzum / Filestorage рассматривает файл как отсутствующий? - PullRequest
0 голосов
/ 14 января 2019

В настоящее время в середине крупного обновления и капитального ремонта, поэтому я не уверен, что с моей стороны что-то не так или нет? В настоящее время работает CakePHP3.6 с PHP7.2 и плагином Burzum Filestorage версии 2.0.0.

В этом плагине в FileStorageBehaviour строка 61 используется следующий метод:

protected function _isFileUploadPresent($entity) {
    $field = $this->getConfig('fileField');
    if ($this->getConfig('ignoreEmptyFile') === true) {
        if (!isset($entity[$field]['error']) || $entity[$field]['error'] === UPLOAD_ERR_NO_FILE) {
            return false;
        }
    }
    return true;
}

Однако $ сущность на данный момент выглядит примерно так:

object(ArrayObject)#692 (1) {
  ["storage":"ArrayObject":private]=>
  array(1) {
    ["file"]=>
    array(2) {
      ["tmp_name"]=>
      string(14) "/tmp/phpAEzNZD"
      ["name"]=>
      string(13) "image.jpg"
    }
  }
}

Поскольку $ entity ['file'] ['error'] не задано, бит if (! Isset ($ entity [$ field] ['error'] сбой и возвращается false.

Не уверен, должен ли всегда быть установлен $ entity ['file'] ['error'], или если оператор if должен быть чем-то вроде if (isset ($ entity [$ field] ['error'] && $ entity) [$ field] ['error'] === UPLOAD_ERR_NO_FILE)?

...