I'm trying to trigger some action after create and update my model following Laravel docs regarding events and observers. So I have:
\App\Observers\PedidoObserver.php:
<?php
namespace App\Observers;
use App\Pedido;
use Illuminate\Support\Facades\Log;
class PedidoObserver {
public $afterCommit = true;
public function created(Pedido $pedido)
{
Log::info('A new order has been created and the properly method has been triggered');
}
public function updated(Pedido $pedido)
{
Log::info('An order has been updated and the properly method has been triggered');
}
}
Boot function in \App\Providers\EventServiceProvider.php:
public function boot(){
parent::boot();
Pedido::observe(PedidoObserver::class);
}
Created method succeeds when a new order is created from one of my controllers with this code:
//...
Pedido::create($pedido['header'])->save();
however, even though my order is successfully updated from another controller method, the updated event never gets executed:
//...
Pedido::where([['numserie', $numserie], ['estado', 'SC']])->update(['estado'=> 'P', 'estadonombre' => 'Pendiente de pago'])