0

我正在使用一对一的关系。我的模型代码是:

public function training_type()
{
    return $this->hasone('App\Training_type','id','type');
}

但参数“id”在一个数组中,我尝试使用以下代码但不工作:

public function training_type()
{
    return $this->hasone('App\Training_type','types.id','type');
}

任何人都给我很好的建议。

Training_type 表结构是,

"company_id": "company1",
"types": [
{
"id": "1",
"name": "Generic"
},
{
"id": "2",
"name": "Compensation and Benefits"
},
{
"id": "3",
"name": "Labor and Employment Law"
}
],
"updated_at": ISODate("2017-08-10T10:24:40.000+05:30")
} 

另一个表结构是,

{
"company_id": "company1",
"title": "Fire Extinguisher\t",
"content_type": "",
"links": [
{
"link": ""
},
{
"link": ""
}
],
"updated_at": ISODate("2017-08-10T10:24:40.000+05:30"),
"type": "1"
}
4

2 回答 2

0

我将 Laravel 与 mongodb 和 jenssegers/laravel-mongodb 一起使用,我从模型中获得了这些文件:

用户:

{
    "_id" : ObjectId("5bb8013422bb405901652cd9"),
    "name" : "ahmed",
    "email" : "ahmed@admin.com",
    "role" : {
        "name" : "admin",
        "_id" : ObjectId("5bb8013422bb405901652cd2")
    }
}

角色:

{
    "_id" : ObjectId("5bb8013422bb405901652cd2"),
    "name" : "admin"
}

我想使用 hasOne 关系来获取使用角色,我在 User 模型中这样做了:

public function role()
    {
        return $this->hasOne('App\Models\Role', '_id', 'role._id');
    }

如您所见,我将角色作为数组插入:ID,名称在数据库中的用户文档中,当我使用以下方法进行测试时:

dd(\Auth::user()->role);

它工作得一样好。

于 2018-10-06T22:33:23.167 回答
0

将 foreign_key 传递给关系的常见做法是:

public function training_type()
{
    return $this->hasone('App\Training_type','foreign_key');
}

foreign_key 来自您要链接的表。

于 2017-09-11T07:08:43.997 回答