【发布时间】:2022-03-24 19:53:31
【问题描述】:
我有 3 个有关系的表
预算表:
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| user_id | bigint(20) unsigned | NO | MUL | NULL | |
| purpose | varchar(255) | NO | NULL | ||
| delivery_plan | varchar(255) | NO | NULL | ||
| status | varchar(255) | NO | NULL | ||
| created_at | timestamp | YES | NULL | ||
| updated_at | timestamp | YES | NULL |
周期表:
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(255) | NO | NULL | ||
| term_id | bigint(20) unsigned | NO | NULL | ||
| created_at | timestamp | YES | NULL | ||
| updated_at | timestamp | YES | NULL |
术语表:
| Field | Type | Null | Key | Default | Extra |
|---|---|---|---|---|---|
| id | bigint(20) unsigned | NO | PRI | NULL | auto_increment |
| name | tinyint(4) | NO | NULL | ||
| status | varchar(255) | NO | NULL | ||
| created_at | timestamp | YES | NULL | ||
| updated_at | timestamp | YES | NULL |
预算模型:
public function period()
{
return $this->belongsTo(Period::class, 'delivery_plan', 'name');
}
周期模型:
public function budgets()
{
return $this->hasMany(Budget::class, 'delivery_plan', 'name');
}
public function term()
{
return $this->belongsTo(Term::class);
}
术语模型:
public function periods()
{
return $this->hasMany(Period::class);
}
所以每个预算都属于一个时期,而时期属于一个任期。 然后我想根据术语名称查询预算。 那么如何通过 laravel 预加载查询呢?
【问题讨论】:
标签: laravel eloquent eloquent-relationship