Pergunta

Ok, eu sei o que estou prestes a dizer é que vai ser super vago, mas ouça-me:

Eu quero usar o flash mensagens porque eu gosto da idéia deles, mas eles não parecem trabalhar sempre para mim.

Aqui é o meu fluxo de trabalho:

  1. O usuário cria um grupo na página Um
  2. Eu enviar um e-mail de notificação para membros do novo grupo
  3. Eu defina o flash mensagem de "Sucesso!"
  4. Eu redirecionar o usuário para o grupo recém-criado e apresentar o "Sucesso!" mensagem flash.

O problema é que depois que eu redirecionar o usuário, as mensagens flash não são mais que os $_SESSION.Para tornar isso ainda mais estranho, se eu tirar o passo onde eu enviar notificações de e-mail, ele NÃO funciona.WTF?

Tem mais alguém experimentou problemas semelhantes com as mensagens flash?Alguém tem algum insight sobre o porquê de enviar o e-mail iria afetar as mensagens flash?

Eu acho que neste momento eu só vou ficar com setState e removê-lo manualmente depois de exibi-los.

Foi útil?

Solução

Como é o e-mail enviado?Eu sei que usando o Yii Mail extension (um swiftmailer wrapper eu acho) em "debug" modo usa o setFlash método, por isso, talvez, que a eliminação da matriz de alguma forma...?

O "flash" as variáveis são atualizadas pelo método init() do CWebUser, por isso, se há uma chamada extra para CWebUser é possível que é o que está a limpar a flash variáveis.

Considerando-se que você defina o flash DEPOIS de o e-mail, porém, eu não tenho certeza de como isso iria acontecer.A minha única outra acho que além do "modo de depuração" coisa (não é um problema se você está apenas usando o PHP mail métodos que) é de que o envio de correio está provocando um extra de redirecionamento em algum lugar.

Se você tem um depurador PHP como XDebug instalado gostaria de definir um ponto de interrupção no getFlash e setFlash código e obter um olhar para o que está acontecendo dessa forma.

Boa sorte!

Outras dicas

Agora você pode definir um componente AutoPoupDateFlash do Property do componente CWebUser como false. Nesse caso, a mensagem flash será removida somente após o uso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top