Recebo o erro Undefined property: stdClass::$image
ao enviar uma imagem para um modelo de página. O manipulador de erros faz referência especificamente à linha 722 em adminbasecontroller.php . O blueprint específico da imagem está aqui:
header.image:
type: file
label: Screenshot
limit: 1
destination: 'self@'
multiple: false
style: vertical
accept:
- image/*
A imagem é enviada independentemente do erro, mas o cabeçalho não é atualizado ...
Reverter para 1.8.1 corrigiu por enquanto.
Não faça isso, o campo pagemedia já faz upload para a pasta da página. O campo Arquivo deve ser usado em outros projetos que não sejam de página.
Então, qual seria a maneira correta de conseguir isso, em termos de projeto?
Mesmo aqui. Desde a atualização para Grav 1.4.5 e Admin 1.8.2, não consigo fazer upload de imagens, resultando no mesmo erro @superDuperCyberTechno relatado.
Meu trecho do projeto é o seguinte:
[...]
header.images:
type: file
label: Images
random_name: true
multiple: true
limit: 2
destination: 'assets'
filesize: 10
accept:
- image/*
[...]
Isso funcionou até agora sem problemas. A atualização o quebrou.
Se houver mudanças significativas, seria vantajoso saber sobre elas antes da atualização. Se houver práticas recomendadas, seria ótimo conhecê-las em vez de apenas obter uma resposta como
Não faça isso, o campo pagemedia já faz upload para a pasta da página. O campo Arquivo deve ser usado em outros projetos que não sejam de página.
sem nenhuma indicação do porquê. Criei o blueprint de acordo com a documentação da época e funcionou. Pode ser um bug ou uma alteração não documentada.
Atualização: o downgrade para Admin 1.8.1 resolveu isso para mim também. Isso reforça minha impressão de que este é provavelmente um bug introduzido em 1.8.2.
Além disso, descobri que, ao excluir uma postagem com essa configuração, todas as imagens da pasta assets
são excluídas. Este parece ser um bug bastante grande no funcionamento interno da interface de administração e me causou muita frustração hoje.
Não percebemos que essa era uma alteração importante porque esse campo realmente não se destina a substituir o seletor de pagemedia. Agora que temos alguns relatórios de pessoas que usam o campo de arquivo em conjunto com o pagemedia picker, vamos investigar e encontrar uma solução. Desculpe por isto!
Para sua informação, a abordagem recomendada é usar o campo pagemedia padrão para fazer upload de imagens em uma página e um selecionador de arquivos para selecioná-las para variáveis de cabeçalho específicas
Para sua informação, a abordagem recomendada é usar o campo pagemedia padrão para fazer upload de imagens em uma página e um selecionador de arquivos para selecioná-las para variáveis de cabeçalho específicas
Essa abordagem recomendada me parece contra-intuitiva. Carregar e atribuir um arquivo / imagem a um campo deve ser uma ação, não duas. Ensinar os usuários a fazer isso em duas etapas seria frustrante e não deveria ser necessário.
Em qualquer caso, obrigado por investigar isso.
O problema pode ser corrigido alterando a linha 722 em adminbasecontroller.php para isset()
:
if (isset($obj->header()->{$init_key})) {
Este problema foi corrigido no Admin 1.8.3
Comentários muito úteis
O problema pode ser corrigido alterando a linha 722 em adminbasecontroller.php para
isset()
: