【发布时间】:2020-11-19 01:48:16
【问题描述】:
我有属于列表的任务和属于项目的列表。 我没有任务-项目关系。 我需要使用 whereHas 函数 找到项目中所有任务的总和,并在 Project.vue 组件中显示该总和。
这是任务表:
Schema::create('tasks', function (Blueprint $table) {
$table->id();
$table->timestamps();
$table->unsignedBigInteger('list_id');
$table->foreign('list_id')
->references('id')
->on('task_lists')
->onDelete('cascade');
$table->boolean('completed')
->default(false);
$table->string('description');
});
这是列表:
Schema::create('task_lists', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->string('description');
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
$table->unsignedBigInteger('project_id');
$table->foreign('project_id')
->references('id')
->on('projects')
->onDelete('cascade');
$table->timestamps();
});
项目模型中的关系:
public function lists()
{
return $this->hasMany(TaskList::class);
}
TaskList 模型中的关系:
public function tasks()
{
return $this->hasMany(Task::class);
}
public function project()
{
return $this->belongsTo(Project::class);
}
任务模型中的关系:
public function list()
{
return $this->belongsTo(TaskList::class);
}
【问题讨论】: