代码之家  ›  专栏  ›  技术社区  ›  slickness

将标记用户名链接到配置文件

  •  0
  • slickness  · 技术社区  · 7 年前

    目前,我将@后面的帖子正文中的每个单词都链接到个人资料。以下代码在post模型中。问题是,如果配置文件不存在,它也将被链接。

    如何确保配置文件存在并仅链接到配置文件?

    如果用户的隐私是3,那么配置文件应该链接到ID而不是用户名。但是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;
    }
    
    0 回复  |  直到 7 年前