我正在使用Laravel开发项目管理应用程序。在我的应用程序中,我有一个项目,一个项目有很多任务,一个任务有很多注释。
所以,我有评论表,如下所示。
id comment project_id user_id
1 abc 1 1
2 dcf 1 2
3 fgt 2 1
4 fgt 2 2
5 fhgt 1 3
评论帖的评论控制器如下所示。
public function postNewComment(Request $request, $id, Comment $comment)
{
$this->validate($request, [
'comments' => 'required|min:5',
]);
$comment->comments = $request->input('comments');
$comment->project_id = $id;
$comment->user_id = Auth::user()->id;
$comment->save();
return redirect()->back()->with('info', 'Comment posted successfully');
}
这是我的评论模型,如下所示。
class Comment extends Model
{
protected $fillable = ['comments', 'project_id', 'user_id'];
public function scopeProject($query, $id)
{
return $query->where('project_id', $id);
}
public function user()
{
return $this->belongsTo(User::class);
}
public function project()
{
return $this->belongsTo('App\Project');
}
}
在我的应用程序中,用户可以使用projectController
index
函数
public function index()
{
$projects = Project::all();
return view('projects.index')->withProjects($projects);
}
然后当点击一个项目链接时,用户可以看到创建的任务表单和相关项目的现有任务列表。我的任务创建表单位于资源文件夹中的视图文件的项目文件夹中,现有任务列表包含此文件projects/show.blade.php
。
@include('tasks.index')
tasks/index.blade.php
文件是
@foreach ($project->tasks as $task)
<h4><a href="/projects/{{$project->id}}/tasks/{{ $task->id }}">{{ $task->task_name }}</a></h4>
@endforeach
我的项目模型是
class Project extends Model
{
protected $fillable = ['project_name','project_notes','project_status','color','group'];
//
public function tasks(){
return $this->hasMany('App\Task');
}
public function comments()
{
return $this->hasMany('App\Comment');
}
}
现在,当我单击现有任务链接之一时,我可以看到评论框,现在我需要显示与每个项目相关的每个任务的评论表评论。我的意思是我需要 显示每个项目对与该项目相关的每个任务的评论。
你可以给我一些帮助吗?谢谢!