Como enviar uma notificação no Laravel

Benachrichtigungen sind in fast jeder Anwendung erforderlich, insbesondere in den Kategorien E-Commerce, soziale Medien oder bekannte digitale Produkte. In diesem Tutorial erfahren Sie, wie Sie eine Benachrichtigung in Laravel senden. Um eine Benachrichtigung in Laravel zu senden, führen wir die folgenden Schritte aus.

Schritt 1: Laravel-Installation

Wenn Sie lokal keine Laravel 8-Installation haben, führen Sie einfach den folgenden Befehl aus:

composer create-project --prefer-dist laravel/laravel laravel-email-notification

Schritt 2: Datenbankkonfiguration

Wenn Ihr Laravel-Projekt frisch ist, müssen Sie Ihre Datenbankanmeldeinformationen aktualisieren. Öffnen Sie einfach die .env-Datei in Ihrem Laravel 9-Projekt.

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=your_database_name_here
DB_USERNAME=your_database_username_here
DB_PASSWORD=your_database_password_here

Schritt 3: Migrationseinrichtung

Hier müssen wir zuerst die Benachrichtigungstabelle generieren , bevor wir die Migrationen ausführen. Bitte führen Sie den folgenden Befehl aus:

php artisan notifications:table
php artisan migrate

Sobald wir fertig sind, erstellen wir einen Seeder für unseren Benutzer. Führen Sie den folgenden Befehl aus:

php artisan make:seeder CreateUsersSeeder

Sobald unser Seeder generiert ist, fügen Sie ihn bitte in das Verzeichnis „database/seeders“ ein . Öffnen Sie das CreateUsersSeeder.phpund Sie sehen den folgenden Code:

<?php

namespace Database\Seeders;

use App\Models\User;
use Illuminate\Database\Seeder;

class CreateUsersSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        User::create([
            'name' => 'Juan',
            'email' => 'email@gmail.com',
            'password' => bcrypt('password')
        ]);
    }
}

Führen Sie dann den folgenden Befehl aus:

php artisan db:seed --class=CreateUsersSeeder

Erfahren Sie hier mehr über die Sämaschine Laravel.

Schritt 4: Erstellen einer Laravel-E-Mail-Benachrichtigung

Lassen Sie uns nun unser Laravel-E-Mail-Benachrichtigungsbeispiel generieren, das wir als benennen werden EmailNotification. Führen Sie dazu den folgenden Befehl aus.

php artisan make:notification EmailNotification

Wenn Sie fertig sind, navigieren Sie durch App/Notificationdie s, öffnen Sie sie EmailNotification.phpund bearbeiten Sie sie. Sehen Sie sich das folgende Beispiel an:

<?php

namespace App\Notifications;

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

class EmailNotification extends Notification
{
    use Queueable;

    /**
     * @var array $project
     */
    protected $project;

    /**
     * Create a new notification instance.
     *
     * @return void
     */
    public function __construct($project)
    {
        $this->project = $project;
    }

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

    /**
     * Get the mail representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail($notifiable)
    {
        return (new MailMessage)
                    ->greeting($this->project['greeting'])
                    ->line($this->project['body'])
                    ->action($this->project['actionText'], $this->project['actionURL'])
                    ->line($this->project['thanks']);
    }

    /**
     * Get the array representation of the notification.
     *
     * @param  mixed  $notifiable
     * @return array
     */
    public function toDatabase($notifiable)
    {
        return [
            'project_id' => $this-How to Send a Notification in Laravel with Example>project['id']
        ];
    }

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

Schritt 5: Routen einrichten

In meinem Beispiel werde ich meine groben Routen manuell erstellen. Öffnen Sie einfach die Datei „routes/web.php“ und fügen Sie die folgenden Routen hinzu.

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Route::get('/send', '\App\Http\Controllers\HomeController@send')->name('home.send');

Schritt 6: Controller einrichten

In diesem Abschnitt fügen wir unsere E-Mail-Benachrichtigung in HomeControllerunsere Routen ein. Nachfolgend finden Sie den vollständigen Code unseres Controllers:

<?php

namespace App\Http\Controllers;

use Notification;
use App\Models\User;
use Illuminate\Http\Request;
use App\Notifications\EmailNotification;

class HomeController extends Controller
{
    public function send() 
    {
    	$user = User::first();
  
        $project = [
            'greeting' => 'Hi '.$user->name.',',
            'body' => 'This is the project assigned to you.',
            'thanks' => 'Thank you this is from codeanddeploy.com',
            'actionText' => 'View Project',
            'actionURL' => url('/'),
            'id' => 57
        ];
  
        Notification::send($user, new EmailNotification($project));
   
        dd('Notification sent!');
    }
}

Jetzt ist unser Code bereit, Benachrichtigungen an unsere Benutzer zu senden. Sie können es jetzt testen, indem Sie den Befehl „serve“ ausführen:

php artisan serve

Führen Sie dann die unten stehende URL in Ihrem Browser aus, um eine E-Mail-Benachrichtigung an Ihren Benutzer zu senden.

http://127.0.0.1:8000/send

#laravel #php 

1.15 GEEK