В настоящее время в середине крупного обновления и капитального ремонта, поэтому я не уверен, что с моей стороны что-то не так или нет? В настоящее время работает 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)?