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:
- 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.
- 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.