Использование признаков для применения нескольких модельных событийPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Использование признаков для применения нескольких модельных событий

Сообщение Anonymous »

У меня есть черта, называемая RecordsUserActivity, которая в основном создает запись в таблице действий, когда пользователь создает, обновляет или удаляет что -то, что использует эту черту. Вот код: < /p>

trait RecordsUserActivity
{
protected static function boot()
{
parent::boot();
foreach (static::getModelEvents() as $event) {
static::$event(function ($model) use ($event) {
$model->addActivity($event);
});
}
}

protected function addActivity($event)
{
$newActivity = [
'subject_id' => $this->id,
'subject_type' => get_class($this),
'action' => $event,
'user_id' => (Auth::id()) ?? null,
];

if ($event == 'updated') {
$newActivity['data'] = json_encode($this->getDirty());
}

UserActivity::create($newActivity);
}

protected static function getModelEvents()
{
if (isset(static::$recordEvents)) {
return static::$recordEvents;
}

return ['created', 'deleted', 'updated'];
}
}
< /code>

Тогда у меня есть другая черта, которая записывает изменения свойства в моделях, которые его используют. Вот код: < /p>

trait RecordsPropertyChangelog
{
protected static function boot()
{
parent::boot();

static::updated(function ($model){
$model->addPropertiesChangelog();
});
}

protected function addPropertiesChangelog()
{
$dirty = $this->getDirty();
foreach ($dirty as $field => $newData) {
$oldData = $this->getOriginal($field);
$this->addPropertyChangelog($field,$oldData,$newData);
}
}

protected function addPropertyChangelog($fieldName,$oldValue,$newValue)
{
PropertyChangelog::create([
'resource_id' => $this->id,
'resource_type' => get_class($this),
'property' => $fieldName,
'from_value' => $oldValue,
'to_value' => $newValue,
'data' => '{}',
]);
}

}
< /code>

Проблема появляется, когда я включаю обе признаки в модель и сделано обновление, существует какое -то столкновение с обоими обновленными событиями модели. Есть ли способ исправить это или я должен узнать другое решение?

Подробнее здесь: https://stackoverflow.com/questions/408 ... del-events
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как использовать анализ главных компонентов (PCA) для анализа набора данных, состоящего из 300 образцов модельных данных
    Anonymous » » в форуме Python
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Трясогузка: проверка модельных отношений
    Anonymous » » в форуме Python
    0 Ответы
    12 Просмотры
    Последнее сообщение Anonymous
  • MixIn для создания сторонних модельных полей Django
    Anonymous » » в форуме Python
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Python: отображение повторяющихся событий в файлах ics как нескольких событий
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Потребление событий из нескольких концентраторий событий Azure в одной программе Python
    Anonymous » » в форуме Python
    0 Ответы
    1 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»