170 похожих чатов

Доброй ночи. в моделях публикаций добавляю возможность тегнуть других юзеров.

верно ли юзать такой подход как расписал?)

; создание поста. принимаем текст от автора
$body = 'some text @useralias text text @id55 text';

> выбираем все @упоминания, находим каждого юзера, создаем связь юзеров с постом
> заменяем в тексте упоминания в виде alias на формат @id{user_id} для более простого формирования ответа апи

; форимирование ответа
$body = 'some text @id15 text text @id55 text';

> находим регуляркой все упоминания
> берем id юзеров которые есть в отношениях к посту, заменяем в тексте формат @id{user_id} на alias, если он указан у упомянутого

$mentions = [
'@id15' => new UserResource(...),
'@id55' => new UserResource(...),
...
];

$result = [
'body' => $body,
'mentions' => $mentions,
]

> на фронте легко делаем замену упоминаний на ссылки. алиасы всегда актуальны, если юзер сменил никнейм.

6 ответов

7 просмотров

А зачем регуляркой делать и получать массив вида $mentions = [ '@id15' ]? Не проще при сохранении поста сразу делать связь пользователя и поста через manyToMany и sync() объединять при правках поста?

wzk- Автор вопроса
Павел Успенский
А зачем регуляркой делать и получать массив вида ...

при выводе скорее да. необходимости уже нет. на фронте заменим айдишки при наличии алиасов. по сохранению нормально? перед публикацией я еще добавлю туда проверку что каждый упомянутый не заблокирован у автора поста и наоборот. много заморочек с проверками увы

wzk
при выводе скорее да. необходимости уже нет. на фр...

ну да когда есть связь то проще сразу делать проверки на выдачи

wzk- Автор вопроса
Павел Успенский
ну да когда есть связь то проще сразу делать прове...

проверка на чс до создания связи. чтобы уведомления не отправились после публикации. в случае с чс, мы просто игнорируем упоминание дальше в беке

wzk- Автор вопроса

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

wzk
screenshot это уже больше так, доп защита приватности. заблок...

Обычно фронт такие вещи делает же, поиск юзера по @

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

Обсуждают сегодня

коллеги, добрый вечер! А никто не знает как модальная форма может себя закрыть? Ну допустим модальная форма определила, что смысла ей работать нет и хочет вернуть modalResult...
Михаил
83
А если изначально бот работал так : есть сайт онлайн школы. У каждого ученика свой кабинет. Где он авторизуется по своим данным. И уже в кабинете, на самом сайте делает оплату...
Денис 💡 Фрилансер
13
А что ты вообще делаешь ?
Yesgoter
13
На работе пишем распределенное приложение, у которого сотни, если не тысячи настроек. Конфиги написаны на xml, расположены на разных хостах и должны быть согласованы друг с др...
Aleksandr Druzhinin
5
средствами IBX как-то можно выполнить запрос insert ... returning?
Igor
31
Всем привет 🙂 Какая-то непонятная проблема у меня с видео, раньше такого не было. Загружаю видео с гугл диска именно в видео mp4 и меняю ссылку как положено вот она: https://d...
Ксюша|Верстка на Тильде|Дизайн 🦥
6
Добрый день Хочу начать обучение языку, не являюсь представителем it, буду благодарна за помощь, совсем пока не понимаю ничего) Подскажите, пожалуйста, где можно начать первы...
Sara Lala
18
Hi there everyone Is there anyone who have not started hamster bot yet? I need only one, I'll be glad if you do this for me DM if you haven't yet
Mehrshad
53
А какие у этого try практические плюсы перед eval?
Oleg Volkov
41
объясните, я прада не понимаю. зачем в перле нужен аниивент? кому он пригодился в действительно нагруженных проектах?
nerv
30
Карта сайта