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

Насколько правильным будет решение на ларавель?

Здравствуйте! Подскажите пожалуйста, как можно реализовать подобный функционал на ларавеле.
Допустим у меня есть пользователь, он публикует статьи и может их скрывать. Как мне можно реализовать так, чтобы при публикации, если он не менял ничего в статье, то она автоматически проходила бы модерацию, а если он что-то в ней предварительно поменял, то пришлось бы опять ждать подтверждения?

Я реализовал это так.
1.Получаю в контроллере текущее состояние модели до обновления через getOriginal()
2. Затем беру массив текущего Request.
3. С помощью array_diff сравниваю два массива и если расхождение идет только по датам, т.е count не больше 2х, то значит фиксирую, что изминений в статье не было.
Подскажите пожалуйста, насколько это правильно, так делать. Может есть еще варианты проверки? Спасибо
  • Вопрос задан
  • 193 просмотра
Подписаться 1 Простой Комментировать
Решения вопроса 1
pLavrenov
@pLavrenov
Разработка сайтов
Есть стандартное не надо ничего придумывать.

Добавляешь слушатель на событие updating
В слушателе проверяешь нужные поля на isDirty()
Если нужные поля "dirty" то делаешь манипуляции с отправкой на модерацию

Открой в исходниках модель и просмотри все методы которые она поставляет. Там много чего интересного и все описано.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
Davidaa_WoW
@Davidaa_WoW
Сравнивайте итеративно конкретные поля, через Whitelist. Сравнение по количеству изменённых полей выглядит ненадёжным
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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