Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉威尔+;MongoDB雄辩的关系不起作用_Laravel_Mongodb_Eloquent_Laravel 8_Jenssegers Mongodb - Fatal编程技术网

Laravel 拉威尔+;MongoDB雄辩的关系不起作用

Laravel 拉威尔+;MongoDB雄辩的关系不起作用,laravel,mongodb,eloquent,laravel-8,jenssegers-mongodb,Laravel,Mongodb,Eloquent,Laravel 8,Jenssegers Mongodb,我是MongoDB的新手,如果我的方法不正确,请原谅。我正在构建一个应用程序,其中创建了简单的角色和权限管理。权限和角色有单独的集合。一个角色可以有多个权限,这些权限可以属于多个角色。典型的多对多关系。 我在每个角色集合中都有嵌入权限,如下所示 角色集合 db.roles.find().pretty() { "_id" : ObjectId("60b6e6dca3b92759976e3037"), "role" : &q

我是MongoDB的新手,如果我的方法不正确,请原谅。我正在构建一个应用程序,其中创建了简单的角色和权限管理。权限和角色有单独的集合。一个角色可以有多个权限,这些权限可以属于多个角色。典型的多对多关系。 我在每个角色集合中都有嵌入权限,如下所示

角色集合

db.roles.find().pretty()
{
    "_id" : ObjectId("60b6e6dca3b92759976e3037"),
    "role" : "Role 1",
    "permissions" : [
        "60b6e023a3b92759976e3033",
        "60b6e055550b3f41692caa2b",
        "60b6e07b550b3f41692caa2c"
    ],
    "updated_at" : ISODate("2021-06-02T02:03:08.282Z"),
    "created_at" : ISODate("2021-06-02T02:03:08.282Z")
}
相同角色的权限

> db.permissions.find({"_id":{"$in":[ObjectId("60b6e023a3b92759976e3033"), ObjectId("60b6e055550b3f41692caa2b"), ObjectId("60b6e07b550b3f41692caa2c")]}}).pretty()
{
    "_id" : ObjectId("60b6e023a3b92759976e3033"),
    "permission" : "product_listing",
    "label" : "Product Listing",
    "level" : 1,
    "parent" : null,
    "created_at" : ISODate("2021-06-02T01:45:22.287Z"),
    "updated_at" : ISODate("2021-06-02T01:45:22.287Z")
}
{
    "_id" : ObjectId("60b6e055550b3f41692caa2b"),
    "permission" : "stock",
    "label" : "Stock",
    "level" : 2,
    "parent" : ObjectId("60b6e023a3b92759976e3033"),
    "created_at" : ISODate("2021-06-02T01:45:22.287Z"),
    "updated_at" : ISODate("2021-06-02T01:45:22.287Z")
}
{
    "_id" : ObjectId("60b6e07b550b3f41692caa2c"),
    "permission" : "previously_bought_icon",
    "label" : "Previously bought icon",
    "level" : 2,
    "parent" : ObjectId("60b6e023a3b92759976e3033"),
    "created_at" : ISODate("2021-06-02T01:45:22.287Z"),
    "updated_at" : ISODate("2021-06-02T01:45:22.287Z")
}
现在我想要下面这样的东西

$role->permissions()
应输出如上所示的具有详细信息的所有版本


我试着保持亲密关系,但没有成功。似乎我使用了错误的方法,或者我应该向elowuent关系传递更多字段。请帮忙。提前感谢。

请查看此链接@hu7sy No luck。仍然得到空结果<代码>{“withTimestamps”:false}对于多对多,您必须将相关id存储在两者中collection@hu7sy是的,非常感谢。我从4小时前就开始试这个了。终于可以做到这一点了。嗯,我想知道是否有任何方法可以只在角色集合中添加权限,而不在权限中添加角色,并且仍然得到相同的结果?我的意思是问你的问题是正确的,但那是不可能的,兄弟