Как обновить связанную модель при добавлении товара?

В Laravel, есть несколько способов обновить связанную модель при добавлении товара. Это может быть полезно, когда вам необходимо автоматически обновлять связанные данные, например, при добавлении товара категории или изменении информации о продукте.

Один из подходов - использовать события моделей. События моделей позволяют вам выполнять определенные действия перед или после сохранения или обновления модели.

Для начала, вы можете определить событие created в модели товара, которое будет вызываться после успешного создания нового товара. В этом событии вы можете обновить связанную модель. Например, если у ваших товаров есть связь с категориями:

class Product extends Model
{
    // ...

    protected $dispatchesEvents = [
        'created' => ProductCreated::class,
    ];

    public function category()
    {
        return $this->belongsTo(Category::class);
    }
}

Затем вы можете определить класс события ProductCreated, который будет обрабатывать обновление связанной модели:

class ProductCreated
{
    public function handle(Product $product)
    {
        // В коде ниже вы можете обновить связанную модель
        $product->category->update(['updated_at' => now()]);
    }
}

В данном случае, при создании нового товара, событие ProductCreated будет запущено автоматически, и метод handle будет вызван, чтобы обновить связанную модель категории.

Если вам нужно обновить связанную модель при обновлении существующего товара, вы можете использовать событие updated вместо created. В этом случае, определите событие updated в модели товара и обработайте его в соответствующем классе события.

Выводя итоги, при использовании Laravel вы можете обновить связанную модель при добавлении товара, используя события моделей. Определите событие в модели и обработайте его в соответствующем классе события, чтобы выполнить необходимые действия при добавлении товара.