2017-11-28 3 views
0

Bei der Entwicklung der Push-Benachrichtigungsanwendung in Lumen ist es erforderlich, php artisan Befehl ausführen, um Benachrichtigungen zu machen. Wenn ich php artisanmake:notification (php artisan make:notification) ausführen, ist Befehl nicht verfügbar. Ich erhalte den folgenden Fehler.Der Befehl "make: notification" ist nicht definiert. | Lumen 5.5

[Symfony\Component\Console\Exception\CommandNotFoundException] 

Command "make:notification" is not defined.

Did you mean one of these? 
     make:migration 
     make:seeder 

Bitte helfen Sie mir, dieses Problem zu lösen. danke

+0

Ich bin mir nicht sicher, ob es diese Funktion für Lumen gibt ... Lumen ist ein API-Framework. In Laravel existiert diese Funktion seit Version 5.3, denke ich. – lewis4u

+0

Ich benutze Version 5.5 – CoolCK

+0

Laravel oder Lumen ??? – lewis4u

Antwort

3

Befehl php artisan make:notification NameOfNotification existiert nicht in Lumen.

Sie müssten dieses Paket importieren.

Quelle: https://stevethomas.com.au/php/using-laravel-notifications-in-lumen.html


Der erste Schritt ist erforderlich, die belichten/notifications Paket:

composer require illuminate/notifications 

Vielleicht werden Sie require illuminate/support, ich bin nicht zu 100%, wenn dies eine erforderliche Abhängigkeit für ist Benachrichtigungen. Wenn Sie Fehler bekommen, könnte dies der Grund sein.

Als nächstes registrieren Sie die Service-Provider in Bootstrap/app.php

$app->register(\Illuminate\Notifications\NotificationServiceProvider::class); 

// optional: register the Facade 
$app->withFacades(true, [ 
    'Illuminate\Support\Facades\Notification' => 'Notification', 
]); 

Fügen Sie das Meldepflichtige Merkmal zu welchen auch immer Modellen, die Sie mögen, würden Benutzer offensichtlich, dass sein:

<?php 

namespace App; 

use Illuminate\Notifications\Notifiable; 

class User extends Model 
{ 
    use Notifiable; 
} 

schreiben Benachrichtigungen der Normaler Weg:

<?php 

namespace App\Notifications; 

use App\Spaceship; 
use Illuminate\Bus\Queueable; 
use Illuminate\Notifications\Notification; 
use Illuminate\Notifications\Messages\MailMessage; 

class SpaceshipHasLaunched extends Notification 
{ 
    use Queueable; 

    /** @var Spaceship */ 
    public $spaceship; 

    /** 
    * @param Spaceship $spaceship 
    */ 
    public function __construct(Spaceship $spaceship) 
    { 
     $this->spaceship = $spaceship; 
    } 

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

    /** 
    * Get the mail representation of the notification. 
    * 
    * @param mixed $notifiable 
    * @return \Illuminate\Notifications\Messages\MailMessage 
    */ 
    public function toMail($notifiable) 
    { 
     return (new MailMessage) 
      ->subject('Spacheship has launched!') 
      ->markdown('mail.spaceship', [ 
       'spaceship' => $this->spaceship 
      ]); 
    } 
} 

Senden Sie Benachrichtigungen von Ihrer App auf die normale Weise:

$user->notify(new Notifications\SpaceshipHasLaunched($spaceship)); 
+0

hahaa ziemlich genau der gleiche Artikel eingefügt: D. trotzdem habe ich upvoted :) – CoolCK

+1

Das sind die Regeln des Stack-Überlaufs. Wenn Sie eine Antwort geben, sollten Sie den Code angeben oder erklären Sie es so, auch wenn der Link gebrochen ist, können Sie das Problem lösen, indem Sie nur die Frage lesen. – lewis4u

+0

Danke für Ihre Hilfe :) – CoolCK

Verwandte Themen