-1

如何拉取某个用户的所有帖子?我应该 foreach 某个用户的所有帖子吗?就像 user1 发布了一些东西,我想提取他发布的任何内容,并且只在他登录时显示。

4

1 回答 1

0

在 Laravel 中,如果你使用 Eloquent 关系,事情会看起来像这样。

首先,定义模型中的关系。如果您遵循下面的示例,我将假设以下内容。

您在数据库中的 users 表名为users。您在数据库中的帖子表名为posts,并且有一个整数列,名称user_id 对应于帖子所属用户的 id。如果您的表名和列名不同,请务必阅读Laravel 文档以了解如何为 Eloquent 模型设置自定义表名和列名。

应用程序/模型/User.php

<?php

class User extends Eloquent {

    // All the default User.php stuff....

    public function posts()
    {
        return $this->hasMany('Post');
    }

}

应用程序/模型/Post.php

class Post extends Eloquent {

    public function user()
    {
        return $this->belongsTo('User');
    }
}

在我们定义了这些关系之后,您可以使用类似的方式获取特定用户。

$user = User::find(1); // This will get the user with an ID of one.

然后,您检索该用户的帖子,我们可以使用我们之前定义的 Eloquent 关系。

$posts = $user->posts()->all();

如果用户已经登录,您可以使用Auth该类为已登录的用户执行此操作。

$posts = Auth::user()->posts()->all();

您现在将意识到它->posts()实际上返回了一个 Collection,并且您可以正常使用该集合上的所有 Query 和 Eloquent 方法。

于 2013-11-14T03:14:42.657 回答