【问题标题】:How to assign relationship and fetch data using array field in laravel如何使用laravel中的数组字段分配关系和获取数据
【发布时间】:2016-12-30 07:48:49
【问题描述】:

有两种模型:餐厅和类别

Restaurant{
  '_id' : 12345678
  'name' : "xyz",
  'abstract' : "awdwadawdawdawd",
  'category': [1,2,3,4] //category ids
}

Category{
  '_id' : 1,
  'name' : 'PQR'
}

如何在 laravel 5.3 和数据库是 mongodb 中使用 Restaurant 的数组字段(类别)分配关系并获取所有类别?

【问题讨论】:

    标签: php mongodb laravel-5


    【解决方案1】:

    我不太确定您的数据库结构,但我认为创建一个新的数据透视表以将每家餐厅的类别存储在不同的行中会更好,如下所示:

    id | restaurant_id | category_id
    1  | 23            | 3
    2  | 23            | 5
    3  | 25            | 4
    

    按照惯例,该表应命名为“category_restaurant”

    这将是 laravel 中的多对多关系。

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

    然后在您的代码中,您可以通过这种方式获取餐厅的 id:

    $restaurant = Restaurant::find(1);
    $categories = $restaurant->categories;
    

    【讨论】:

    • 这里是关于它的文档:Many to many relationships.
    • 是的,对不起,我没有注意到 Mongodb 部分。不知道如何在 Mongo 中实现它。
    • 是的!我知道这一点,但我想知道如何使用 mongodb 数组字段 @isa424 来实现它
    猜你喜欢
    • 1970-01-01
    • 2021-02-09
    • 2018-10-24
    • 2020-11-07
    • 2020-01-19
    • 2020-11-27
    • 2014-11-13
    • 1970-01-01
    • 2021-11-07
    相关资源
    最近更新 更多