如何
提取某个用户的所有帖子? 我应该为某个用户的所有帖子提供吗?就像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 方法。