Автоматически вставлять данные в базу данных в определенных случаях в laravel - PullRequest
2 голосов
/ 17 февраля 2020

Я новичок в laravel. Я хочу знать, есть ли конкретный лучший вариант для использования в следующем случае в laravel. Для примера у меня есть таблица с именем product и другая таблица с именем productlog. В то время как продукт создается / обновляется / удаляется в этих случаях, я должен вставить журнал в таблицу productlog. Я знаю, что я могу вставить эти данные непосредственно в контроллер, когда эти действия происходят. Кроме этого laravel есть какая-либо лучшая функция для использования в этом случае?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2020

Вы хотите выполнить какое-то действие во время обработки вашей модели Eloquent. Eloquent от Laravel предоставляет удобный способ добавить собственное действие, когда модель завершает или выполнила какое-то действие.

Это список всех событий, сработавших в красноречивой модели, к которым мы можем подключиться:

  • извлечено : после получения записи.
  • создание : до создания записи.
  • создан : после создания записи.
  • обновление : до обновления записи.
  • обновление : после записи был обновлен.
  • сохранение : до сохранения записи (создания или обновления).
  • сохранено : после сохранения записи (либо создан, либо обновлен).
  • удаление : перед удалением или программным удалением.
  • удаление : после записи удален или программно удален.
  • восстановление : перед восстановлением программно удаленной записи.
  • * 10 46 * восстановлено : после восстановления удаленной записи.

Подробнее см. Документацию Laravel здесь. Наблюдатели / Модельные события

0 голосов
/ 17 февраля 2020

Я добавил это в мое

app \ Providers \ AppServiceProvider. php

Product::created(function ($model) {
    $producthistory = new Producthistory();
    $producthistory >product_id = $model->id;
    $producthistory >action = ' Product Created';
    $producthistory >log = "Product created bla bla bla";
    $producthistory >action_by = Auth::id();
    $producthistory >save();
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...