* @created 2022-12-22 14:09:37 * @modified 2022-12-22 14:09:37 */ namespace Beike\Notifications; use Beike\Mail\CustomerNewOrder; use Beike\Models\Order; use Illuminate\Bus\Queueable; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Notifications\Notification; class NewOrderNotification extends Notification implements ShouldQueue { use Queueable; private Order $order; /** * Create a new notification instance. * * @return void */ public function __construct(Order $order) { $this->order = $order; } /** * Get the notification's delivery channels. * * @param mixed $notifiable * @return array */ public function via($notifiable) { $drivers[] = 'database'; $mailEngine = system_setting('base.mail_engine'); if ($mailEngine) { $drivers[] = 'mail'; } return $drivers; } /** * Get the mail representation of the notification. * * @param mixed $notifiable * @return CustomerNewOrder */ public function toMail($notifiable) { return (new CustomerNewOrder($this->order)) ->to($notifiable->email); } /** * Get the array representation of the notification. * * @param mixed $notifiable * @return array */ public function toArray($notifiable) { return [ // ]; } /** * 保存到 DB * @return Order[] */ public function toDatabase() { return [ 'order' => $this->order, ]; } }