Agora vamos adicionar a opção de enviar notificações por e-mail aos empregados quando houver alterações em seus cadastros no nosso aplicativo de cadastro de empregados em Laravel, você pode seguir os seguintes passos:

  1. Certifique-se de que seu aplicativo está configurado para enviar e-mails. Você pode usar o serviço de e-mail padrão do Laravel ou configurar um serviço de e-mail externo, como o Gmail ou o SendGrid. Para mais informações, consulte a documentação do Laravel sobre o envio de e-mails: https://laravel.com/docs/8.x/mail.
  2. Adicione uma nova coluna “email_verified_at” à tabela “empregados” executando a seguinte migração no terminal:
php artisan make:migration add_email_verified_at_to_empregados_table --table=empregados

Abra o arquivo de migração criado em “database/migrations” e adicione a seguinte linha ao método “up”:

$table->timestamp('email_verified_at')->nullable();

Execute a migração executando o seguinte comando no terminal:

php artisan migrate

Adicione uma nova função ao controlador “EmpregadoController” para atualizar o cadastro do empregado e enviar uma notificação por e-mail, por exemplo:

public function update(Request $request, Empregado $empregado)
{
    $empregado->nome = $request->input('nome');
    $empregado->email = $request->input('email');
    $empregado->telefone = $request->input('telefone');
    $empregado->data_nascimento = $request->input('data_nascimento');
    $empregado->email_verified_at = null; // marca o e-mail como não verificado
    $empregado->save();

    // envia uma notificação por e-mail se o endereço de e-mail foi alterado
    if ($request->input('email') != $empregado->email) {
        $empregado->notify(new EmailVerificationNotification);
    }

    return redirect('/empregados')->with('success', 'Empregado atualizado com sucesso.');
}

Crie uma nova classe de notificação em “app/Notifications” para enviar a notificação por e-mail, por exemplo:

<?php

namespace App\Notifications;

use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Notifications\Messages\MailMessage;
use Illuminate\Notifications\Notification;

class EmailVerificationNotification extends Notification implements ShouldQueue
{
    use Queueable;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * Get the notification's delivery channels.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function via($notifiable)
    {
        return ['mail'];
    }

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->subject('Verifique seu endereço de e-mail')
                    ->line('Por favor, verifique seu endereço de e-mail clicando no link abaixo.')
                    ->action('Verificar E-mail', url('/verify-email/'.$notifiable->id.'/'.$notifiable->email_verified_token))
                    ->line('Obrigado por usar nosso aplicativo!');
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toArray($notifiable)
    {
        return [
            //
        ];
    }
}

Crie uma nova rota para a verificação de e-mail em “routes/web.php”, por exemplo:

Route::get('/verify-email/{id}/{token}', 'EmpregadoController@verifyEmail');

Adicione uma nova função ao controlador “EmpregadoController” para verificar o endereço de e-mail do empregado, por exemplo:

public function verifyEmail($id, $token)
{
    $empregado = Empregado::findOrFail($id);

    if ($empregado->email_verified_token == $token) {
        $empregado->email_verified_at = now();
        $empregado->save();
        return redirect('/empregados')->with('success', 'Endereço
de e-mail verificado com sucesso.'); } else { return redirect('/empregados')->with('error', 'Link de verificação inválido.'); } }

Adicione uma nova coluna “email_verified_token” à tabela “empregados” executando a seguinte migração no terminal:

php artisan make:migration add_email_verified_token_to_empregados_table --table=empregados

Abra o arquivo de migração criado em “database/migrations” e adicione a seguinte linha ao método “up”:

$table->string('email_verified_token')->nullable()->unique();

Execute a migração executando o seguinte comando no terminal:

php artisan migrate

Com esses passos, você deve ser capaz de adicionar a opção de enviar notificações por e-mail aos empregados quando houver alterações em seus cadastros no seu aplicativo de cadastro de empregados em Laravel. Lembre-se de personalizar as mensagens de notificação e rota de verificação de e-mail de acordo com suas necessidades específicas.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *