流明如何将变量传递给通知

Lumen how to pass variable to notification

我在 lumen 中使用了以下插件:

"illuminate/notifications": "^8.11",    
"laravel-notification-channels/telegram": "^0.5.0",

在尝试了很多网上的例子后,我终于可以用下面的代码集发送出去了:

    // App/Console/Command/abc.php
    namespace App\Console\Commands;
    
    use NotificationChannels\Telegram\TelegramChannel;
    use NotificationChannels\Telegram\TelegramMessage;
    use Illuminate\Support\Facades\Notification;
    use App\Helpers\TGNotification;
    
     Notification::route(TelegramChannel::class, '-123456')
                                ->notify(new TGNotification($tg));

上面是控制台命令中的代码,下面是帮助文件:

// App/Helpers/TGNotification.php
namespace App\Helpers;

use NotificationChannels\Telegram\TelegramChannel;
use NotificationChannels\Telegram\TelegramMessage;
use Illuminate\Notifications\Notification;

class TGNotification extends Notification
{
    public function via($notifiable)
    {
        return [TelegramChannel::class];
    }

    public function toTelegram($notifiable)
    {
        $url = "http://www.google.com";
        return TelegramMessage::create()
            // Optional recipient user id.
            // ->to($notifiable->telegram_user_id)
            ->to("-123456")
            // Markdown supported.
            ->content($notifiable->msg)
            
            // (Optional) Blade template for the content.
            // ->view('notification', ['url' => $url])
            
            // (Optional) Inline Buttons
            ->button('Hello', $url)
            ->button('World', $url);
    }
}

但是,我无法将变量从 abc.php 传递到 TGNotification.php。 如果我使用在线提供的此插件的任何示例,它就不起作用。有人可以建议吗?谢谢

construct 方法中发送您的参数:

class TGNotification extends Notification
{
    protected $tg;

    public function __construct($tg)
    {
        $this->tg = $tg;
    }
}

或者,您可以使用 setter 和 getter 方法。