gpt4 book ai didi

Laravel belongsTo 和 hasMany 在同一模型上的关系

转载 作者:行者123 更新时间:2023-12-04 02:01:00 24 4
gpt4 key购买 nike

如何在同一模型上应用 belongsTo 和 hasMany 关系?

例如,我有一个用户和一个项目模型。现在 Project 模型有方法 user() 而 User 模型有 projects() 方法。

现在我希望用户与其他用户共享项目。这样我就可以在 Project 模型中使用 users() 和在 User 模型中使用 shared_projects() 之类的方法。

我怎样才能做到这一点?

这是我当前的项目模型

class Project extends \Eloquent {
protected $fillable = [];

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

这是我的用户模型

class Project extends \Eloquent {
protected $fillable = [];

public function projects() {
return $this->hasMany('Project');
}
}

最佳答案

在这种情况下,用户和项目具有多对多关系,因为一个用户有多个项目,一个项目属于多个用户。因此,您应该创建第三个表(project_user),用于连接数据库中的 User 表和 Project 表。然后你设置Many-to-Many relation到用户模型和项目模型。

class User extends Eloquent {

public function projects()
{
return $this->belongsToMany('Project');
}

}

在项目模型中

class Project extends Eloquent {

public function users()
{
return $this->belongsToMany('User');
}

}

然后你可以做这样的事情

//users in the same project
$users = Project::find($id)->users;

关于Laravel belongsTo 和 hasMany 在同一模型上的关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31197401/

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