Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Dúvida com SystemChangeLogTrait Pessoal Eu uso nos meus models o SystemChangeLogTrair. Ocorre que em produção estou recebendo a seguinte "wanring": Warning: Invalid argument supplied for foreach() in /home/mgservic/public_html/zoomexpress/app/model/log/SystemChangeLog.class.php on line 28 Os dados são registrados, porpem em todos os casos estou recebendo esta mensagem. Alguém tem ideia do porque? ...
MG
Dúvida com SystemChangeLogTrait  
Pessoal

Eu uso nos meus models o SystemChangeLogTrair.

Ocorre que em produção estou recebendo a seguinte "wanring":

Warning: Invalid argument supplied for foreach() in /home/mgservic/public_html/zoomexpress/app/model/log/SystemChangeLog.class.php on line 28

Os dados são registrados, porpem em todos os casos estou recebendo esta mensagem.

Alguém tem ideia do porque?

Curso completo Meu Negócio Pronto
Use para si, ou transforme em um negócio: Inclui aulas e códigos-fontes
Gestor de conteúdo (SITE) + Loja Virtual (E-Commerce) + Emissor de Notas para infoprodutos


Meu negócio pronto Quero me inscrever agora!

Comentários (6)


NR

Qual a versão do framework? Chegou a debugar o que tem nessa variável que está dando o warning?
MG

Nataniel, tentei sim mas não consegui chegar a conclusão alguma.
O mais estranho é que o 'warniing' aparece, o registro é atualizado normalmente.
Versões: Adianti - 5.5
PHP - Dev 7.2
PRD 7.0
SG

Olá Marcelo,

Estou tendo esse mesmo problema na versão 5.5. Conseguiu achar uma solução?
MG

Samuel
Até o momento não.
O mesmo problema persiste no 7.2.
Eu desativei isso, pois não consigo entender o motivo.
Mas se observar nos logs, os mesmos são gravados com sucesso.
Como é apenas um warning, eu desliguei isso em produção e pronto!
Mas solução mesmo, não!
SG

Obrigado por responder.

Pesquisando no Fórum, eu achei esse Post: https://www.adianti.com.br/forum/pt/view_3997?systemchangelogtrait-hook-methods-

É um caso semelhante ao meu. Estava tendo problemas em usar esse metodo de Log justamente em uma classe que ja tinha "Hook Methods" explicitos, então dava esse erro "Invalid argument supplied for foreach()" na linha 28 da Classe SystemChangeLog.class.php.

Fiz um teste em uma outra classe model sem "Hook Methods" explicitos, e não dava erro. Então nesse caso em vez de usar a classe traid com "use SystemChangeLogTrait", copiei o código das funções 'onAfterDelete', 'onBeforeStore' e 'onAfterStore' nos "Hook Methods" explicitos da classe model.

Dai funcionou. Talvez pode ser uma alternativa até sair uma correção.



MG

Samuel
Realmente o post esclarece tudo.
Eu sobre escrevo o método hook onBeforeStore().
Assim que eu o retirei, não deu mais o warning.
Mas se for assim, teremos um problema.
Não é recomendado mudar classes do framework então, não podemos usá-los.