У меня есть строка с именем $ body , и я пытаюсь заменить имена пользователей в этой строке, если они существуют в таблице пользователей, и обернуть их тегом привязки, код работает нормально, если только один пользователь находится в строка, но если в строке больше имени пользователя, моя функция срабатывает специально, если в таблице пользователей есть более одного пользователя, и один из них является реальным пользователем, а другой - нет.
public function setBodyAttribute($body)
{
preg_match_all('/@([\w\-]+)/', $body, $matches);
$users = $matches[1];
foreach ($users as $user) {
if (User::where('name', $user)->exists()) {
$body = preg_replace($pattern, '<a href=/profiles/$1>$0</a>', $body);
}
}
$this->attributes['body'] = $body;
}