gpt4 book ai didi

php - 如何在 Laravel 5.2 中创建表关系

转载 作者:行者123 更新时间:2023-11-29 18:20:28 25 4
gpt4 key购买 nike

我正在使用 laravel 5.2 开发项目管理应用程序,在我的应用程序中,用户可以创建项目,每个项目都有许多任务,每个任务也有许多子任务。在我的表项目和任务表中有以下关系。任务模型与项目模型的关系为

public function project()
{
return $this->belongsTo('App\Project');
}

项目模型与任务表的关系

public function tasks(){
return $this->hasMany('App\Task');
}

我需要子任务表来存储子任务,我现在的子任务表如下

id    subtask  task_id   project_id
1 abc 2 1
2 dfg 2 1
3 frt 3 2

如何创建与项目和任务表相关的子任务模型?

已更新请查看我的子任务迁移文件

 public function up()
{
Schema::create('subtasks', function(Blueprint $table)
{
$table->increments('id')->unsigned();
$table->longText('subtask_name');
$table->integer('task_id')->unsigned();
$table->integer('project_id')->unsigned();
$table->timestamps();

$table->foreign('task_id')
->references('id')->on('task')
->onUpdate('cascade')
->onDelete('cascade');
});
}

最佳答案

用户和项目表具有多对多关系。因为每个用户可以创建多个项目,一个项目可能属于多个用户。

项目和任务具有一对多关系。因为每个Project都有很多Task,一个Task又属于一个Project

任务和子任务具有一对多关系。因为每个Task可以有很多Subtask,一个Subtask属于每个用户。

User.php(模型)中

public function projects(){
return $this->belongsToMany(Project::class);
}

Project.php(模型)中

public function users(){
return $this->belongsToMany(User::class);
}

public function tasks(){
return $this->hasMany(Tasks::class);
}

Task.php(模型)中

public function project(){
return $this->belongsTo(Project::class);
}

public function subtasks(){
return $this->hasMany(SubTask::class);
}

SubTask.php(模型)中

public function task(){
return $this->belongsTo(Task::class);
}

用法认为您有一个任务并且想知道它具有的所有子任务。

例如:只是为了演示,我正在使用修补程序从命令行进行操作。

php artisan tinker

$task = App\Task:whereId(1)->get(); //Get the task details with id 1

$task->subtasks; //This will fetch all the subtasks that belongs to the task

关于php - 如何在 Laravel 5.2 中创建表关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46628033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com