Eu estou construindo uma extensão simples baseada em extbase / fluid que tem um upload de formulário em um plugin frontend. Ele estava trabalhando no 6.0.4, mas agora eu recebo a seguinte exceção quando tento fazer o upload de um arquivo:
# 1297759968: Exceção enquanto mapeamento de propriedade no caminho da propriedade "fichier": Nenhum conversor encontrado que possa ser usado para converter de "array" para sequenciar".
O problema parece estar relacionado ao fato de queo pedido da web recebe uma matriz para o arquivo enviado, mas o modelo o armazena como um corda. Como posso me livrar dessa exceção? Como devo lidar com arquivo fazer upload no extbase?
A extensão foi iniciada usando Extension Builder
. fichier
é uma propriedade de string no Modelo, contendo o nome do arquivo carregado (localizado em uploads/tx_myext/
). O modelo para o plugin contém um campo de upload criado a partir de um form.upload
ViewHelper. No TYPO3 6.0.4, quando submeto o formulário, recebo um objeto como argumento para o createAction
função. A partir desse objeto, eu chamo getFichier
que me retorna a matriz de arquivos do arquivo enviado. Em seguida, posso extrair o nome do arquivo original, copiar o arquivo temporário para o local correto e definir o valor do arquivo. fichier
propriedade usando o nome do arquivo original.
Agora, no TYPO3 6.1.0, eu recebo a exceção acima antes de entrar no createAction
função. Meu convidado é que PropertyMapper está tentando traduzir a matriz de arquivos para uma cadeia de caracteres para coincidir com o tipo de fichier
propriedade.
O que eu não sei é como funcionava antesfoi um bug, ou é assim que funciona agora que é o bug. E se realmente funciona da maneira que se destina a fazer, como devo ser capaz de lidar com o upload de arquivos em uma extensão extbase?
Respostas:
7 para resposta № 1 /**
* initialize actions
*/
public function initializeAction() {
if ($this->arguments->hasArgument("myModel")) {
$this->arguments->getArgument("myModel")->getPropertyMappingConfiguration()->setTargetTypeForSubProperty("upload", "array");
}
}
http://www.typo3lexikon.de/typo3-tutorials/extensions/extbase/property-mapper.html