使用Laravel 5.7的新通知系统

使用Laravel 5.7的新通知系统

在这个部分,我们将学习一个新的通知系统。我们将使用Laravel 5.7来完成这个任务。我们将使用各种通知系统,如邮件、Markdown、slack、数据库、广播和短信来发送通知。这里我们将提供一个电子邮件通知系统的例子。使用新的通知系统,我们可以轻松地同时向所有用户发送通知。

在Laravel中,我们可以使用各种方式发送通知,如短信、邮件、slack或数据库。使用Laravel的artisan命令,我们可以简单地创建通知。通知的自定义非常简单,如邮件正文、邮件主题、邮件操作等等。如果我们正在开发一个大项目,如电子商务,那么我们需要使用通知向客户发送通知。通知可以以订单接收、付款接收、发票等形式发送。

在我们的Laravel应用程序中,我们将创建一个电子邮件通知,然后将其发送给一个特定的用户。发送完成后,我们将使用数据库保存它。为了创建通知,我们将按照以下步骤进行:

步骤1:

在这一步骤中,我们将 下载Laravel 5.7 。在我们的应用程序中,我们需要一个新鲜的Laravel 5.7版本。因此,我们将使用下面的命令来获取它。为此,我们将使用终端并运行以下命令:

composer create-project --prefer-dist laravel/laravel blog

步骤2:

在这个步骤中,我们将要 创建数据库表格 。我们会使用Laravel 5的artisan工具来创建一个名为”notifications”的新数据库表格。创建表格的命令如下所示:

php artisan notifications:table 
php artisan migrate

步骤3:

在这一步中,我们将要 创建通知 。我们将使用 Laravel 5 的 artisan 工具来创建 MyFirstNotification。为此,我们会使用以下命令,命令的描述如下:

php artisan make:notification MyFirstNotification

当我们成功执行上述命令时,将在应用文件夹中创建一个名为“Notification”的新文件夹。现在我们将进行一些更改,具体如下:

app/Notifications/MyFirstNotification.php

<?php

namespace App\Notifications;

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

class MyFirstNotification extends Notification
{
    use Queueable;

    private details;

    /**
     * It is used to create a new notification instance.
     *
     * @return void
     */
    public function __construct(details)
    {
        this->details =details;
    }

    /**
     * It is used to get delivery channels of notification.
     *
     * @param  mixed  notifiable
     * @return array
     */
    public function via(notifiable)
    {
        return ['mail','database'];
    }

    /**
     * It is used to get notification?s mail representation.
     *
     * @param  mixed  notifiable
     * @return \Illuminate\Notifications\Messages\MailMessage
     */
    public function toMail(notifiable)
    {
        return (new MailMessage)
                    ->greeting(this->details['greeting'])
                    ->line(this->details['body'])
                    ->action(this->details['actionText'],this->details['actionURL'])
                    ->line(this->details['thanks']);
    }

    /**
     * It is used to get notification?s array representation.
     *
     * @param  mixednotifiable
     * @return array
     */
    public function toDatabase(notifiable)
    {
        return [
            'order_id' =>this->details['order_id']
        ];
    }
}

步骤4:

在这一步中,我们要 创建路由 . 我们需要向用户发送通知,所以我们将创建路由。为此,我们将使用名为“routes/web.php”的文件,并将以下代码放入其中,如下所示:

routes/web.php

Route::get('send', 'HomeController@sendNotification');

步骤5:

在这一步中,我们要创建控制器 创建控制器 。因此,我们将创建一个名为HomeController的新控制器,用于处理路由的generatePDF方法。为此,我们将添加以下代码:

app/Http/Controllers/HomeController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\User;
use Notification;
use App\Notifications\MyFirstNotification;

class HomeController extends Controller
{
    /**
     * It is used to create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        this->middleware('auth');
    }

    /**
     * It is used to display the dashboard of application.
     *
     * @return \Illuminate\Contracts\Support\Renderable
     */
    public function index()
    {
        return view('home');
    }

    public function sendNotification()
    {user = User::first();

        details = [
            'greeting' => 'Hi Artisan',
            'body' => 'This is my first notification from Javatpoint.com',
            'thanks' => 'Thank you for using Javatpoint.com tutorial!',
            'actionText' => 'View My Site',
            'actionURL' => url('/'),
            'order_id' => 101
        ];

        Notification::send(user, new MyFirstNotification($details));

        dd('done');
    }

}

当我们运行上述命令时,我们能够向用户发送第一条通知。为此,我们将运行以下命令:

php artisan serve 

现在我们可以使用我们的浏览器打开下面的URL:

http://localhost:8000/sends

我们还可以使用以下命令发送类似的通知:

$user->notify(new MyFirstNotification($details));

可以使用以下命令获取发送的通知,如下所示:

dd($user->notifications);

当我们运行这个命令时,将生成以下输出:

使用Laravel 5.7的新通知系统

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程