2015-07-23 4 views
0

Я хочу проверить входной файл поле в TYPO3, но кажется, что NotEmpty annonation не работает на свойстве типа FileReference:Как я могу проверить поле загрузки файла в TYPO3?

/** 
* image 
* 
* @var \TYPO3\CMS\Extbase\Domain\Model\FileReference 
* @validate NotEmpty 
*/ 
protected $image; 

/** 
* Returns the image 
* 
* @return \TYPO3\CMS\Extbase\Domain\Model\FileReference $image 
*/ 
public function getImage() { 
    return $this->image; 
} 

/** 
* Sets the image 
* 
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $image 
* @return void 
*/ 
public function setImage(\TYPO3\CMS\Extbase\Domain\Model\FileReference $image) { 
    $this->image = $image; 
} 

и эта простая жидкость наценке:

<f:render partial="FormErrors" arguments="{field: 'data.image'}" /> 
<f:form.upload property="image" /> 

так если попытаться отправить пустую форму загрузки, я получаю следующее сообщение об ошибке, потому что filereference по-прежнему имеет значение null:

Исключение при сопоставлении свойств в пути свойств "": PHP Catchable Fatal Error : Аргумент 1 передан Fox \ Example \ Domain \ Model \ Data :: setImage() должен быть экземпляром TYPO3 \ CMS \ Extbase \ Domain \ Model \ FileReference, null задан ...

+0

Посмотрите здесь: https://github.com/helhum/upload_example/ – pgampe

+0

, но в этом примере он проверить только FileReference, но не вход загрузки или я не прав? – Fox

+0

hm ok, но если я изменю этот пример и добавлю @validate NotEmpty к защищенному $ image, то он работает для этого примера :) ... Я должен проверить это – Fox

ответ

0

ok У меня был ошибка в моей модели setter для свойства изображения: O ... как pgampe сказал, если у вас есть проблемы с файловой загрузкой, посмотрите на этот удивительный пример: github.com/helhum/upload_example, и если вы хотите добавить валидацию при загрузке, просто добавьте Validate аннотацию к свойству изображения, он работает как шарм :)

/** 
* image 
* 
* @var \TYPO3\CMS\Extbase\Domain\Model\FileReference 
* @validate NotEmpty 
*/ 
protected $image; 

Я изменилась:

/** 
* Sets the image 
* 
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $image 
* @return void 
*/ 
public function setImage(\TYPO3\CMS\Extbase\Domain\Model\FileReference $image) { 
    $this->image = $image; 
}} 

к

/** 
* Sets the image 
* 
* @param \TYPO3\CMS\Extbase\Domain\Model\FileReference $image 
* @return void 
*/ 
public function setImage($image) { 
    $this->image = $image; 
}