Laravel 8 定義頻道類

2021-07-17 17:35 更新

如果你的應(yīng)用程序使用了很多不同的頻道, 那么 routes/channels.php 文件將會變得很臃腫。 所以,你可以使用頻道類,而不是使用閉包來授權(quán)頻道。要生成頻道類,使用 make:channel Artisan 命令。 此命令將在 App/Broadcasting 目錄,生成一個新的頻道類。

php artisan make:channel OrderChannel 

接下來,在 routes/channels.php 文件中注冊你的頻道:

use App\Broadcasting\OrderChannel;

Broadcast::channel('order.{order}', OrderChannel::class);

最后,你可以把頻道的授權(quán)邏輯,放在頻道類的 join 方法中。join 方法將保留在頻道授權(quán)閉包中的邏輯。 你還可以利用頻道模型綁定:

<?php

namespace App\Broadcasting;

use App\Models\Order;
use App\Models\User;

class OrderChannel
{
    /**
     * 新建一個新的頻道實(shí)例
     *
     * @return void
     */
    public function __construct()
    {
        //
    }

    /**
     * 驗(yàn)證用戶對頻道的訪問權(quán)限。
     *
     * @param  \App\Models\User  $user
     * @param  \App\Models\Order  $order
     * @return array|bool
     */
    public function join(User $user, Order $order)
    {
        return $user->id === $order->user_id;
    }
}

提示:和很多 Laravel 中其他類一樣,頻道類會被 服務(wù)容器 自動解析。 所以,你可以在構(gòu)造函數(shù)中鍵入頻道所需的任何依賴。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號