检索用户帖子

时间:2013-11-14 02:39:41

标签: php laravel

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

1 个答案:

答案 0 :(得分:0)

在Laravel中,如果你使用Eloquent关系,那么事情就会像这样。

首先,在模型中定义您的关系。如果您按照以下示例进行操作,我将假设以下内容。

  

数据库中的用户表名为users。你的帖子表   数据库名为posts,并且有一个名为user_id的整数列   对应于帖子所属的用户的id。如果你的   表格和列名称不同,请务必阅读Laravel   docs,了解如何为其设置自定义表名和列名   雄辩的模特。

应用/模型/ 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方法。