Mittels Modell-Ereignisse Listener in Laravel 5

Möchte ich sicherstellen, dass ich richtig Modell-Ereignisse Listener in Laravel 5 und ich habe nicht versaut nichts (vs listener handler?). Meine Lösung funktioniert gut, aber ich Frage mich, ob ich entwickelte nach Konzept und die Konvention von Laravel 5.

Ziel:
Setzen Sie sich immer ein $Problem->status_id auf einen Wert ein, wenn Sie Modell speichern.

In app\Providers\EventServiceProvider.php

<?php namespace App\Providers;

...

class EventServiceProvider extends ServiceProvider {

    ...

    public function boot(DispatcherContract $events)
    {
        parent::boot($events);

        Issue::saving('App\Handlers\Events\SetIssueStatus');
    }

}

In app\Handlers\Events\SetIssueStatus.php

<?php namespace App\Handlers\Events;

...

class SetIssueStatus {

    ...

    public function handle(Issue $issue)
    {
        if (something)
        {   
            $issueStatus = IssueStatus::where(somethingElse)->firstOrFail();
        }
        else 
        {
            $issueStatus = IssueStatus::where(somethingAnother)->firstOrFail();
        }

        //issue_status() is One-to-One relations with IssueType (belongsTo)
        $issue->issue_status()->associate($issueStatus);
    }

}

Vielen Dank für Ihre Zeit.

  • möchten Sie nur verwenden Sie dieses Ereignis, auf ein Modell, oder wollen Sie es verwenden, mehr als ein Modell?
  • Diese Logik ($Frage->status_id) ich möchte nur für die Ausgabe von Modell, aber in Zukunft möchte ich hinzufügen, mehr Logik, um diese und andere Modell.
  • Es gibt keine richtige oder falsche Antwort für diese; es hängt von der Anwendung ab. Daher, die Abstimmung zu schließen, und es ist vor allem Meinung-basiert.
InformationsquelleAutor zss61890 | 2015-04-23
Schreibe einen Kommentar