Grav-plugin-admin: Propriedade indefinida: stdClass :: $ image em 1.8.2

Criado em 28 mai. 2018  ·  8Comentários  ·  Fonte: getgrav/grav-plugin-admin

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.

bug

Comentários muito úteis

O problema pode ser corrigido alterando a linha 722 em adminbasecontroller.php para isset() :

if (isset($obj->header()->{$init_key})) {

Todos 8 comentários

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

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

darkroastcreative picture darkroastcreative  ·  4Comentários

coolemur picture coolemur  ·  3Comentários

ritchiedalto picture ritchiedalto  ·  6Comentários

dimayakovlev picture dimayakovlev  ·  5Comentários

amadeusp picture amadeusp  ·  3Comentários