Php 如何解决“关系”问题;属性[id]不存在“;问题

Php 如何解决“关系”问题;属性[id]不存在“;问题,php,laravel,eloquent,Php,Laravel,Eloquent,我有三个模型1。Task.php 2。Project.php.3。User.php。 任务与user和project.php有一对多的关系 Task.php public function project() { return $this->belongsTo(Project::class); } public function user() { return $this->belongsTo(User::class,'mem

我有三个模型1。Task.php 2。Project.php.3。User.php。 任务与user和project.php有一对多的关系

Task.php

 public function project()
    {
        return $this->belongsTo(Project::class);
    }
public function user()
    {
        return $this->belongsTo(User::class,'member_id');
    }
User.php

public function tasks()
    {
        return $this->hasMany(Task::class);
    }
Project.php

public function tasks()
    {
        return $this->hasMany(Task::class);
    }
现在,我想检索与项目id为1(实际上不是1,id是通过url传递的)的用户关联的所有任务

public function taskList($id)
    {
        $project=Project::with('tasks')->find($id);
        $tasks=Task::has('user')->whereHas('project',function($project){
            $project->where('id',$project->id);
        })->get();
        dd($tasks);
        return view('leader.tasks',compact('project'));
    }
在上面的例子中,我要么给我从url获取的$id,要么给$project->id,错误总是通过我来解决。请帮助我解决这个问题。

公共函数任务列表($id)
{
$project=project::with('tasks')->find($id);
$tasks=Task::has('user')->whereHas('project',function($query)use($project){
$query->where('id',$project->id);
})->get();
dd(任务);
返回视图('leader.tasks',compact('project');
}
您需要使用
with()
方法以及
has()


是的,它解决了错误,但仍然无法检索用户名哦,不,我在哪里出错了,它解决了我的问题…谢谢
public function taskList($id)
{
    $project=Project::with('tasks')->find($id);
    $tasks=Task::with('user')->has('user')->whereHas('project', function($query) use ($project) {
        $query->where('id', $project->id);
    })->get();
    dd($tasks);
    return view('leader.tasks',compact('project'));
}