Ich möchte sicherstellen, dass ich Model-Events-Listener in Laravel 5 richtig verwendet habe und nichts vermasselt habe (Listener vs Handler?). Meine Lösung funktioniert gut, aber ich frage mich, ob ich nach Konzept und Konvention von Laravel 5.Verwenden von Model Events Listener in Laravel 5
Ziel entwickelt: immer gesetzt $ themen-> status_id auf einen bestimmten Wert, wenn Modell Speichern wird.
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.
Sie möchten dieses Ereignis nur für ein Modell verwenden oder möchten Sie es in mehr als einem Modell verwenden? –
Diese Logik ($ issue-> status_id) Ich möchte nur für Issue-Modell verwenden, aber in Zukunft möchte ich mehr Logik zu diesem und anderen Modell hinzufügen. – zss61890
Es gibt keine richtige oder falsche Antwort dafür; Es hängt von der Anwendung ab. Wählen Sie daher zu schließen, da es in erster Linie auf der Meinung der Meinung ist. –