В данный момент я связываю каждое слово из тела поста, следующего за @, с профилем.Следующий код в почтовой модели.Проблема в том, что он также будет связан, если профиль не существует.
Как я могу убедиться, что профиль существует, и только тогда ссылка на профиль?
И если пользователь имеетконфиденциальность 3, профиль должен быть связан с идентификатором, а не с именем пользователя.Но Auth :: user () может видеть его имя пользователя.
<?php
protected function replaceUserNames($body)
{
preg_match_all('/@(\w+)/', $body, $users);
if (!isSet($users[1])) {
return $body;
}
$userList = Collect($users[1]);
foreach ($userList->unique() as $user) {
$body = str_replace('@' . $user,
'<a href="/profile/' . $user . '">@' . $user . '</a>', $body);
}
return $body;
}