У меня есть компания и адрес модели. Отношения 1-1. Для простоты я опущу код с репозиториями.
В модели компании у меня есть такой мутатор:
public function setAddressAttribute($value)
{
$this->address()->update($value);
}
И когда я обновляю компанию, я заполняю ее атрибутом «адрес», который представляет собой массив атрибутов адреса. Само обновление работает нормально.
В адресной модели у меня есть это:
public static function boot()
{
parent::boot();
static::saved(function($address)
{
dd('saved');
});
}
Я пробовал разные события, такие как создание/обновление, но они работают только в том случае, если я создаю новую компанию с таким адресом:
$company->address()->save(new Address($attributes['address']));
В этом случае я могу перехватить событие, но когда я пытаюсь обновить адрес, несмотря на то, что он действительно обновляется, событие не срабатывает.
По сути, мне просто нужно геокодировать адрес при его обновлении и указать значения широты и долготы.
Спасибо
update На самом деле я заметил, что никакие события не запускаются, когда я использую метод обновления. Если вместо этого я использую save(), то все в порядке.