首页 > 解决方案 > hasMany 关系返回 null 与 mongodb (jenssegers) laravel

问题描述

我有 jenssegers(Mongodb 数据库)的 laravel 8 项目,但我的产品和类别模型之间的 hasMany 关系不起作用我的产品 mongo 对象:

{
"_id" : ObjectId("5dcaafb8eaec3701a2774d29")
"category_ids" : [ 
    ObjectId("5dcaacbfeaec37018b508a39"), 
    ObjectId("5dcaacbfeaec37018b508a5d")
]}

和我的类别 mongo 对象:

{
"_id" : ObjectId("5dcaacbfeaec37018b508a39"),
"title" : "category test",
"slug" : "wordpress-plugins"

}

我的产品型号代码:

public function categories() {
    return $this->hasMany(Category::class, 'category_ids', '_id');
}

但下面的代码返回 null :

$product = Product::with('categories')->where('_id', $id)->first();
    dd($product->categories);

请帮助我,谢谢:)

标签: laravelmongodbrelationshipjenssegers-mongodblaravel-mongodb

解决方案


您需要$this->belongsToMany在两种模式中使用关系。

public function categories() {
   return $this->belongsToMany(Category::class);
}

public function products() {
   return $this->belongsToMany(Product::class);
}

推荐阅读