检索用户帖子


Retrieving user posts

如何

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

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

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

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

应用/模型/用户.php

<?php
class User extends Eloquent {
    // All the default User.php stuff....
    public function posts()
    {
        return $this->hasMany('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.

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

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

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

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

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