【发布时间】:2019-02-02 21:02:08
【问题描述】:
我正在制作一个小型 laravel 项目来实现 Eloquent 关系,我主要有多个模型(项目、任务、用户、文件等)
一个项目可以分配多个用户,附加多个文件,还可以有多个任务。 单个任务可以分配多个用户,也可以分配多个文件以及多个其他内容。我已经用谷歌搜索并实现了 hasManyThrough 和 belongsToMany 关系,但我对关系感到很困惑。有什么帮助吗?
项目.php
class Project extends Model
{
protected $fillable = ['name', 'user_id'];
public function users()
{
return $this->belongsTo(User::class);
}
public function tasks()
{
return $this->hasManyThrough(Task::class, User::class);
}
}
任务.php
public function user()
{
return $this->belongsTo(User::class);
}
用户.php
public function tasks()
{
return $this->hasMany(Task::class);
}
public function project()
{
return $this->belongsTo(Project::class);
}
我得到的错误是当我去项目时/1 我得到了多个任务,但没有多个用户。
【问题讨论】:
-
先添加一些代码,不管你做了什么。
-
我已经用一个惊人的语法正确要求更新了我的答案。
-
也许你应该尝试多态关系?用户有很多任务,项目有很多任务,项目有很多用户。似乎多态关系更兼容?
-
你确定吗?我在帖子、视频和评论中尝试过。我猜当您需要一个帖子和一个视频来拥有多个 cmets 时,这很有用。
标签: php laravel eloquent laravel-5.2