Mi piacerebbe essere sicuro di aver usato correttamente gli ascoltatori di eventi modello in Laravel 5 e non ho incasinato nulla (listener vs handler?). La mia soluzione funziona bene, ma mi chiedo se ho sviluppato secondo il concetto e la convenzione di laravel 5.Utilizzo del listener di eventi del modello in Laravel 5
Obiettivo: Impostare sempre $ problema-> status_id su qualche valore quando il modello è il risparmio.
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 \ Eventi \ 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);
}
}
Grazie per il vostro tempo.
si desidera utilizzare questo evento su un modello o si desidera utilizzarlo in più di un modello? –
Questa logica ($ issue-> status_id) Voglio usarla solo per il modello Issue, ma in futuro voglio aggiungere più logica a questo e ad altri modelli. – zss61890
Non c'è una risposta giusta o sbagliata per questo; dipende dall'applicazione. Pertanto, si vota per chiudere poiché si basa principalmente su opinioni. –