我正在尝试从我的点赞表中检索一组帖子ID,其中用户ID等于存储在Auth Session中的ID。
到目前为止,我已经以多种方式测试了数据的检索,如果我从表中选择所有“喜欢”它都可以正常工作,那么从会话中检索到的身份验证ID与“喜欢”表中存储的身份ID相同,因此应该产生匹配项并返回数据。
这是我目前正在使用的代码:
public function index()
{
$userid = Auth::id();
$userLikes = likes::all()->pluck('post_id')->where('user_id', $userid);
dd($userLikes);
}
表中的列名称如下:
我尝试过这种写查询的方法,但是遇到同样的问题,没有错误,也没有数据。
DB::table('likes')->pluck('post_id')->where('user_id', $userid)->toArray();
我希望为登录用户喜欢的帖子提供一个帖子ID数组,以便可以将其传递到视图中。
预先感谢
答案 0 :(得分:1)
如果您创建了具有适当关系的User
,Post
和Like
模型,则可以执行以下操作:
$ids = auth()->user()->likes->pluck('post_id')->toArray();
模型的关系定义为:
// User.php
public function likes()
{
return $this->hasMany(Like::class);
}
public function posts()
{
return $this->hasMany(Post::class);
}
// Like.php
public function user()
{
return $this->belongsTo(User::class);
}
public function post()
{
return $this->belongsTo(Post::class);
}
// Post.php
public function user()
{
return $this->belongsTo(User::class);
}
public function likes()
{
return $this->hasMany(Like::class);
}
或者,使用查询生成器:
DB::table('likes')->where('user_id', auth()->id())->get('post_id')->toArray();