【发布时间】:2021-12-29 04:04:09
【问题描述】:
我之前问过这个问题,但它的格式不同且不正确。
交易是,我有 4 张桌子要嵌套。
我想要包含 measurement_data 的 Measurement_data ,其中包含 measurement_fields ,其中包含 measure_type (仅显示重要字段)。
到目前为止,我在 Measurement Data 中拥有除 MeasurementFields 之外的所有内容。
我的桌子:
measurements
- id
- client_id (not really important now)
measurement_data
- id
- measurement_id
- measurement_field_id
measurement_fields
- id
- type_id
measurement_types
- id
- name
我已经尝试过 hasManyThrough 和 belongsToMany,但我无法让它们中的任何一个工作。这就是我现在的模型中的内容:
测量模型
protected $fillable = [
'client_id',
];
public $timestamps = false;
public function clients() {
return $this->belongsTo(Client::class, 'client_id');
}
public function measurement_datas() {
return $this->hasMany(MeasurementData::class);
}
public function measurement_fields() {
return $this->belongsToMany(MeasurementField::class, 'measurement_fields', 'measurement_id', 'measurement_field_id')
->withPivot([
'type_id',
'name',
'enabled',
]);
}
测量数据模型
protected $fillable = [
'measurement_id',
'measurement_field_id',
'data',
];
public function measurement() {
return $this->belongsTo(Measurements::class, 'measurement_id');
}
MeasurementField 模型
protected $table = 'measurement_fields';
protected $fillable = [
'type_id',
'name',
'enabled',
];
public $timestamps = false;
public function measurement_type() {
return $this->belongsTo(MeasurementType::class, 'type_id');
}
MeasurementType 模型
protected $table = 'measurement_types';
protected $fillable = [
'name',
];
public function measurement_field() {
return $this->hasMany(MeasurementField::class);
}
我的控制器MeasurementController
public function index()
{
return JsonResource::collection(Measurement::with(['clients', 'measurement_datas', 'measurement_fields'])->get());
}
我会很感激任何帮助,因为我已经坚持了一段时间了。谢谢你:)
【问题讨论】:
-
如何在控制器中调用它们?
-
我将编辑我的问题以包含控制器,忘记了。一瞬间..
标签: laravel eloquent relationship