我有一个"类型";表,该关系在第一个对象上有效,但在以下对象上返回null
。以下是我的JSON:
{"id":1,"type_id":1,"name":"test1","enabled":1,"measurement_type":{"id":1,"name":"test"}},
{"id":2,"type_id":2,"name":"test2","enabled":0,"measurement_type":null}]},
{"id":3,"type_id":1,"name":"test3","enabled":1,"measurement_type":null}]}
以下是我的关系:
MeasurementFields Model
public function measurement_type() {
return $this->belongsTo(MeasurementType::class, 'type_id');
}
测量类型模型
public function measurement_type() {
return $this->belongsTo(MeasurementData::class);
}
在这个模型中,我已经有一个measurement_field函数,它向MeasurementData(不同的模型(声明了一个belongsTo。那么,我如何用hasMany为类型命名新函数呢?
我的控制器:
public function index()
{
return JsonResource::collection(MeasurementField::with('measurement_type')->get());
}
它们都包含数据,正如你从JSON中看到的那样,这种关系对它没有任何作用
我的迁移:
Schema::create('measurement_types', function (Blueprint $table) {
$table->id()->autoincrement();
$table->string('name');
});
Schema::create('measurement_fields', function (Blueprint $table) {
$table->id()->autoincrement();
$table->foreignId('type_id')->constrained('measurement_types');
$table->string('name')->unique();
$table->boolean('enabled');
});
我认为您的measurement_type
有很多measurement_field
。
我想你必须把这个放在你的MeasurementField
型号中:
public function measurement_type() {
return $this->belongsTo(MeasurementType::class, 'type_id');
}