У меня возникли проблемы с попыткой заставить моего наблюдателя модели работать. Он работает как ожидалось для создания и удаления, но не для обновления. Я предполагаю, что это событие никогда не срабатывает. Все дело в том, что все делается точно так же. Есть идеи? Ниже, мой наблюдатель.
class GenericObserver extends AbstractObserver { protected $events; public function __construct(Dispatcher $dispatcher){ $this->events = $dispatcher; } public function saved($model) { dd($this->events); $user_id = Auth::user()->usr_id; $user_nome = Auth::user()->usr_nome; $user_email = Auth::user()->usr_email; dd($model); } public function deleted($model) { $user_id = Auth::user()->usr_id; $user_nome = Auth::user()->usr_nome; $user_email = Auth::user()->usr_email; echo($model->getTable()); dd($model->getKeyName()); } public function updated($model) { $user_id = Auth::user()->usr_id; $user_nome = Auth::user()->usr_nome; $user_email = Auth::user()->usr_email; dd($model); } public function saving($model){ echo 'Saving'; } public function deleting($model){ echo 'Deleting'; } public function updating($model){ echo 'Updating'; }
И вот, мой модельный класс
Aplicacao extends Model { protected $table = 'gst_aplicacoes'; protected $primaryKey = 'app_id'; protected $fillable = ['app_nome', 'app_key', 'app_observacao']; public static function table() { $model = new static; return $model->getTable(); } public static function boot() { parent::boot(); Aplicacao::observe(new GenericObserver(new Dispatcher)); }
Если кто-либо сталкивается с этой проблемой, причина, по которой событие не срабатывает, заключается в том, что метод обновления только запускает свои события, когда обновление происходит непосредственно на модели, поскольку я использовал промежуточный репозиторий для представления моей модели, он не работал ,
Больше подробностей. https://github.com/laravel/framework/issues/11777#issuecomment-170388067