Php 如何解决“关系”问题;属性[id]不存在“;问题
我有三个模型1。Task.php 2。Project.php.3。User.php。 任务与user和project.php有一对多的关系 Task.phpPhp 如何解决“关系”问题;属性[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
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'));
}