gpt4 book ai didi

php - 如何返回 id 等于其他具有 Laravel 关系的表上的 id 的模型行?

转载 作者:行者123 更新时间:2023-11-29 12:05:29 24 4
gpt4 key购买 nike

例如我有:

// Returns all projects
$projects = Projects::all();

要返回属于项目的类别,我使用关系并且可以执行以下操作:

foreach($projects as $project) { ...show $project->categories... }

我只需要特定的项目,然后是特定的用户。在我的 projects_followers 表中,我有 user_idproject_id

为了检索所关注的项目,我有这样的代码:

$projects = Project::rightJoin(DB::raw('(select * from projects_followers group by project_id) projects_followers'),'projects_followers.project_id','=','projects.id')->get();
// Note: This code doesn't include specifuc user_id.

它确实检索特定行,但此代码的问题是 laravel 关系不适用于它们。例如 $project->categories 返回空。

// Relationship
public function categories()
{
return $this->belongsToMany('App\Category');
}

如何检索模型特定行并使关系发挥作用?

最佳答案

实际上你的问题是:

How do I get projects liked/followed by Auth/Logged in User ?

不幸的是,无论如何,你以这样的方式描述它,它看起来像是别的东西。让我们尝试找到解决方案,为此我想使用这样的东西:

$projects = Auth::user()->favorite_projects;

那么我们如何实现这个工作,首先,用户模型应该包含方法favoriteProjects,所以让我们创建它:

public function favoriteProjects()
{
return $this->belongsToMany(
'App\Project',
'projects_followers', // This table already exists as you mentioned
'user_id',
'project_id'
);
}

就是这样。您将能够加载当前用户后面的项目,其他关系方法也适用于每个项目。

关于php - 如何返回 id 等于其他具有 Laravel 关系的表上的 id 的模型行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31551453/

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