Php Laravel雄辩-获得许多关系中的许多关系
假设以下结构:Php Laravel雄辩-获得许多关系中的许多关系,php,laravel,eloquent,Php,Laravel,Eloquent,假设以下结构: 用户有许多项目。一个项目有许多任务 目标:我想获得某个$user的所有任务。实现这一目标最优雅的方式是什么 我目前使用的是一个大的、非直观的函数链,它返回集合而不是集合生成器实例: return $user->projects()->with('tasks')->get()->pluck('tasks')->flatten(); 这就是关系的样子: class User extends \Illuminate\Database\Eloquent\M
用户
有许多项目
。一个项目
有许多任务
目标:我想获得某个$user
的所有任务。实现这一目标最优雅的方式是什么
我目前使用的是一个大的、非直观的函数链,它返回集合而不是集合生成器实例:
return $user->projects()->with('tasks')->get()->pluck('tasks')->flatten();
这就是关系的样子:
class User extends \Illuminate\Database\Eloquent\Model {
public function projects(){
return $this->hasMany(Project::class);
}
}
class Project extends \Illuminate\Database\Eloquent\Model {
public function tasks(){
return $this->hasMany(Task::class);
}
}
要理解一种提供快捷方式来访问另一种模式关系的数据,关系有点复杂
在您的用户模型中,以如下方式建立关系:
public function tasks()
{
return $this->hasManyThrough(
Task::class,
Project::class,
'user_id', // Foreign key on projects table...
'project_id', // Foreign key on tasks table...
'id', // Local key on users table...
'id' // Local key on projects table...
);
}
我认为你的关系不是很多很多,它的有很多通过关系,你能发布这3个模型吗?@sta我已经把关系添加到我的问题中了。他们是一对多的关系。