Como enviar notificações de banco de dados de filamentos para uma fila específica

Ao trabalhar com filamento \ notifications \ notification, o envio de notificações de banco de dados com sendtodatabase () é super conveniente. Mas e se você quiser controlar a qual fila essas notificações são despachadas? À primeira vista, isso parece complicado, o filamento não expõe uma opção de configuração da fila diretamente. Mas a boa notícia é: você ainda pode aproveitar ao máximo o sistema de filas de Laravel. Comportamento padrão para notificações de filamento no banco de dados da maneira usual do filamento se parece com o seguinte: use filamento \ notifications \ notification; Notificação :: make () -> title (“Sua solicitação foi processada”) -> body (“Alguns detalhes sobre a solicitação”) -> SendTodatabase ($ user); Digite o modo de saída do modo de tela cheia, o que acontece no capô: o filamento chama $ user-> notify ($ this-> TodAtabase ()). TodAtabase () cria um filamento \ notifications \ DatabaseNotification, que estende a notificação de Laravel, os implementos deve ser e usa a característica em quedas. Isso significa que a notificação entra na fila definida pelo seu Queue_Connection (banco de dados, redis etc.), mas você não pode especificar qual nome de fila dessa maneira. Como controlar a fila: usando Todatabase () + onqueue () em vez de sendtodatabase (), pegue a instância de notificação com TodAtabase () e aplique onqueue (): use filamento \ notifications \ notification como filamentoNotificação; $ DATABASENOTIFICATIVA = FILAMENTIFICAÇÃO :: make () -> title (“Sua solicitação foi processada”) -> body (“Alguns detalhes sobre a solicitação”) -> Todatabase () // Retorna uma banco denetotificação (Notificação do Laravel) -> Onqueue (‘Notificações’); // de característica que você usa $ user-> notify ($ databaseNotification); Digite o modo de saída de tela cheia de tela cheia ou, em uma única linha: $ user-> notify (filamentnotification :: make () -> title (“Sua solicitação foi processada”) -> body (“Alguns detalhes sobre a solicitação”) -> TodAtabase () -> ONQUEUE (‘Notificações’); Digite o modo de saída do modo de tela cheia dessa maneira, você mantém a simplicidade da API fluente do Filamento e obtém controle de fila de granulação fina. Exemplo de vários usuários se você precisar notificar vários usuários na mesma fila: $ notif = filamentNotification :: make () -> title (“Sua solicitação foi processada”) -> body (“Alguns detalhes sobre a solicitação”) -> Todatabase () -> Onqueue (‘Notificações’); foreach ($ usuários como $ usuário) {$ user-> notify ($ notif); // reutiliza a mesma instância de notificação} Digite Conclusão do modo de tela cheia de tela cheia Se você deseja enviar notificações de banco de dados, o sendtodatabase () do Filament é perfeito. Mas se você precisar de controle da fila, mude para Todatabase ()-> onqueue (‘…’). Dessa forma, você fica totalmente no ecossistema de filamentos, portanto suas notificações são armazenadas e exibidas corretamente em seus painéis de filamentos, enquanto ainda aproveita a flexibilidade da fila de Laravel. 🙏 Obrigado a @obaume por alcançar este tópico. Sua pergunta me fez mergulhar mais fundo em notificações de filamentos e descobrir essa abordagem! 💡 Ideia da comunidade: Atualmente, o sendtodatabase () não permite especificar uma fila. Se este artigo tiver gostos ou compartilhamentos suficientes, considerarei propondo uma solicitação de tração ao Filamento para adicionar esse recurso – tornando o gerenciamento da fila ainda mais fácil para todos! 📬 Junte -se à comunidade no filamentMastery.com – é grátis!

Fonte

Você pode ter perdido