英文:
Relationships laravel doesn't work after 5th position
问题
我有2个模型:
模型1 -> 有多个模型2
public function model2(){
return $this->hasMany(Model2::class, 'field_fk_id');
}
模型2 -> 属于模型1
public function model1(){
return $this->belongsTo(Model1::class,'id');
}
当我尝试获取模型2的前5个元素的关系时,一切正常。但是,当我尝试获取第6个或更高的ID时,返回null
。
示例:正确引用
"status": true,
"message": "Model 2",
"data": {
"id": 4,
"name": "Name example",
"field_fk_id": 1,
"created_at": "2023-04-04T09:23:41.000000Z",
"updated_at": "2023-04-04T09:23:41.000000Z",
"model1": {
"id": 2,
"name": "Name parent example",
"created_at": "2023-04-04T09:23:41.000000Z",
"updated_at": "2023-04-04T09:23:41.000000Z"
}
}
错误引用:
"status": true,
"message": "Model 2",
"data": {
"id": 11,
"name": "Name example 11",
"field_fk_id": 3,
"created_at": "2023-04-04T09:23:41.000000Z",
"updated_at": "2023-04-04T09:23:41.000000Z",
"model1": null
}
当我尝试从模型1获取关系时,hasMany关系正常工作。返回所有引用。
有没有什么办法来修复这个问题?
附注:'field_fk_id'的引用存在,我在请求时检查过,也在数据库中检查过。
英文:
I have 2 models:
model 1 -> hasMany(model2)
public function model2(){
return $this->hasMany(Model2::class, 'field_fk_id');
}
model 2 -> belongsTo(model1)
public function model1(){
return $this->belongsTo(Model1::class,'id');
}
When i try to get the relationship of 5 first elements of model 2, work well. When i try to get the 6th or highest id, return null
.
Example: Ok reference
"status": true,
"message": "Model 2",
"data": {
"id": 4,
"name": "Name example",
"field_fk_id": 1,
"created_at": "2023-04-04T09:23:41.000000Z",
"updated_at": "2023-04-04T09:23:41.000000Z",
"model1": {
"id": 2,
"name": "Name parent example",
"created_at": "2023-04-04T09:23:41.000000Z",
"updated_at": "2023-04-04T09:23:41.000000Z"
}
}
Wrong reference:
"status": true,
"message": "Model 2",
"data": {
"id": 11,
"name": "Name example 11",
"field_fk_id": 3,
"created_at": "2023-04-04T09:23:41.000000Z",
"updated_at": "2023-04-04T09:23:41.000000Z",
"model1": null
}
When i try to get the relationship since model 1, the relation hasMany work well. Return all the referencies.
Any idea for fix this?
P.S.: the references of field_fk_id
exists, i check it at the request and i check it at the database.
答案1
得分: 2
The second parameter of belongsTo is a foreign key. So it should be:
public function model1(){
return $this->belongsTo(Model1::class,'field_fk_id');
}
英文:
The second parameter of belongsTo is a foreign key. So it should be:
public function model1(){
return $this->belongsTo(Model1::class,'field_fk_id');
}
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论