gpt4 book ai didi

php - Laravel hasManyThrough 操作 user_id

转载 作者:行者123 更新时间:2023-11-29 10:17:57 26 4
gpt4 key购买 nike

我在 Laravel 中使用 hasManyThrough 函数时遇到问题。

我的目标是获取一个供稿,其中登录用户关注的用户会显示帖子。我尝试通过以下方式实现这一目标:

  1. 在User.php中,获取登录用户的ID
  2. 将用户 ID 与 Follow.php 中名为 user_id 的列进行匹配
  3. 从 Follow.php 中的行获取 target_id
  4. 获取 user_id 与 Follow.php 中的 target_ids 匹配的帖子

我通过用户关注的人正确检索数据。但是,数据中返回的 user_id 是登录用户,而不是帖子的作者。为什么?

User.php

public function feed() {
return $this->hasManyThrough(
'App\Post',
'App\Follow',
'user_id',
'user_id',
'id',
'target_id'
)
->with('user')
->orderBy('id', 'DESC');
}

Post.php

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

通过 Controller 调用

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

最佳答案

您的代码创建此查询:选择 `posts`.*, `follows`.`user_id`...

如您所见,posts.user_idfollows.user_id 覆盖(follows.user_id 对于急切加载是必需的)。

我发现您的问题有两种可能的解决方案:

  1. 重命名follows.user_id
  2. 使用两个独立的关系:UserHasManyFollowHasManyPost

关于php - Laravel hasManyThrough 操作 user_id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49840880/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com