Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel雄辩-获得许多关系中的许多关系_Php_Laravel_Eloquent - Fatal编程技术网

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我已经把关系添加到我的问题中了。他们是一对多的关系。