Задать вопрос
@KonstantinDyulin

Как реализовать "журнал событий"?

657803ec4f985107634209.png
Мне нужно реализовать этот журнал событий, в котором мне нужно трекать следующие действия с вакансиями: создание, редактирование, смена статуса(активна, скрыта), удаление, предложения вакансии соискателю. Структуру таблицы для событий я примерно представляю, загвоздка в другом. Мне нужно сделать их мультиязычными, и я ума не приложу как это сделать. То ли хранить в колонке типа JSONB вариации перевода сообщения, а при генерации события эти поля забивать(так на фронте их будет выводить проще), то ли на фронте отслеживать действие и в зависимости от него выводить подходящий шаблон. Больше конечно склоняюсь к первому. Еще думаю что мне в решении этого вопроса помогут встроенные в Laravel: События и Слушатели. Буду рад любой помощи и подсказке
  • Вопрос задан
  • 163 просмотра
Подписаться 1 Средний 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
@iljaGolubev
В базе храните ключи (enum) типа действия.
Добавьте ключи в локализацию.
Добавьте cast в модель и измените toArray() (метод сериализации) чтобы возвращал локализованные значения.
пример enum

enum JournalAction: string
{
    case Edit = 'edit';
    case Add = 'add';

    public function translated($replacements=[]): string
    {
        return Lang::get('journal.' . $this->value,...$replacements);
    }
}

Идентификаторы вакансии и пользователя храните в поле jsonb. (как делать их локализацию - совсем другой вопрос). Хранение их локализованного значения в журнале в виде строк может стать проблемой когда название или имя изменится (или из локализация).
Ответ написан
Комментировать
https://laravel-auditing.com/

Позволяет записывать все изменения моделей автоматически, а дальше просто выводи в том виде в котором нужно
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы