Laravel通过用户模型中的ID获取用户并将其存储在数组中

用户名

我试图通过将每个朋友ID作为一个用逗号分隔的字符串存储在单个列中,以创建一个简单的“朋友”系统。

我想按ID获取用户并将其存储在数组中:

public function getFriends() {
    $friendids = explode(',', $this->friends);
    $friends = [];

    foreach ($friendids as $id) {
        $friends[] = User::findOrFail($id);
    }

    return $friends;
}

所以我可以这样做:

@foreach ($user->getFriends() as $friend)
    <p>Friend ID: {{ $friend->id }}</p>
    <p>Friend Username: {{ $friend->username }}</p>
@endforeach

但是我认为我无法在用户模型中使用findOrFail或我做错了什么?

用户名

我犯了两个简单的错误:

1)我在寻找错误时User从物体上移开findOrFail()

2)我指定的用户ID(朋友)在数据库中不存在,从而导致错误

通过添加可选参数仅获得x个用户,我还对代码进行了一些改进:

// App/User.php
public function getFriends($friends_to_get = null) {
    $friendids = explode(',', $this->friends);
    $friends = [];

    $i = 0;
    foreach ($friendids as $id) {
        if (is_numeric($id)) {
            $friends[] = User::findOrFail($id);
        }

        if (isset($friends_to_get) && $i < $friends_to_get) {
            ++$i;
        }

        if (isset($friends_to_get) && $i == $friends_to_get) {
            break;
        }
    }

    return $friends;
}

现在,您可以在视图中执行以下操作:

@foreach ($user->getFriends() as $friend)
    <p>Friend ID: {{ $friend->id }}</p>
    <p>Friend Username: {{ $friend->username }}
@endforeach

或者,例如,如果您只想获得6个朋友,则可以执行以下操作: $user->getFriends(6)

就我而言,$ user是我当前正在查看谁的个人资料的用户。如果愿意,您也可以通过Auth::user()->getFriends()

/编辑:在foreach循环中添加了is_numeric检查。这样,您不必担心列中的第一个和最后一个元素会有多余的逗号。由于explode会为数组增加一个额外的值,因此,如果friends列的末尾有逗号。现在,您x,每次可以只在列中添加或删除列,而不必担心获取不存在的对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何获取用户输入并将其存储在向量中?

如何获取用户输入并将其放入python数组中的新数组中?

获取用户输入并将其存储到Structure中的元素中

如何通过Laravel中的ID获取用户名?

通过在Laravel中传递令牌来获取用户ID

在laravel中获取用户的角色ID数组

获取用户输入的字符并将其存储到变量中(Java)

如何从 UItextfield 获取用户输入并将其添加到数组中?

如何通过仅在Android中输入用户ID来获取用户github存储库

linux bash脚本获取用户输入并存储在数组中

从用户那里获取输入并将其存储在Java中的字符串数组中

如何让谷歌地图api获取用户的当前位置以将其存储在数据库中?

从多维数组中获取用户 ID 数组

如何通过Laravel中的关系获取用户名

从ID的对象数组中获取用户数据

android中的任何选项,以从通知中获取用户响应并将其发送回应用

从JOptionPane读取用户输入并将其存储在文本文件中

在 ROOM 中通过 userId 获取用户

C程序以获取用户的联系并将其添加到文件中

如何获取用户的数据并将其作为键和值附加到字典中

从文本框中获取用户数据并将其写入特定的json名称

Rails twitter-api无需访问即可获取acces令牌,并将其存储在与用户不同的模型中

如何从 django 用户模型中获取用户名

我正在尝试从Firestore获取用户,并将其存储在javascript中的Map中,但是由于某些原因,地图为空

我如何通过从 GUI 获取用户输入并将该用户输入存储到 java 中的数据库来写入数据库?

从 ID 中获取用户名

从提及中获取用户ID

在Azure Pipelines中获取用户ID

在Android中获取用户的Gmail ID