. * * @link https://www.librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace App\Observers; use Illuminate\Database\Eloquent\Model as Eloquent; class ModuleModelObserver { /** * Install observers to output +, -, U for models being created, deleted, and updated * * @param string|\Illuminate\Database\Eloquent\Model $model The model name including namespace */ public static function observe($model) { static $observed_models = []; // keep track of observed models so we don't duplicate output $class = ltrim($model, '\\'); if (! in_array($class, $observed_models)) { $model::observe(new static()); $observed_models[] = $class; } } /** * @param Eloquent $model */ public function saving($model) { if (! $model->isDirty()) { echo '.'; } } /** * @param Eloquent $model */ public function updated($model) { d_echo('Updated data:', 'U'); d_echo($model->getDirty()); } /** * @param Eloquent $model */ public function created($model) { echo '+'; } /** * @param Eloquent $model */ public function deleted($model) { echo '-'; } }