Set up many to many relationship in laravel eloquent

前端 未结 3 734
温柔的废话
温柔的废话 2021-01-27 08:59

What is the best practice to setup many to many relationship with post and categories in laravel eloquent? Do I create a separate model for pivot table?

This is how I de

3条回答
  •  有刺的猬
    2021-01-27 09:57

    you need to change the relationship method name to categories()

    /**
     * The categories that belong to the product.
     */
    public function categories()
    {
        return $this->belongsToMany('App\Category', 'category_product');
    
    }
    

    category_product - is your pivot table, you can define if you change the naming convention or its optional.

    In Category model, you can define it like blow

    /**
     * The users that belong to the role.
     */
    public function products()
    {
        return $this->belongsToMany('App\Product', 'category_product');
    }
    

    If you require you can create a model for pivot table, in my case this is how i store data to pivot table (using attach method)

            $product->categories()->attach($category); //list of category id's
    

    And you can update it again using detach method or synch method.

            $product->categories()->sync($synch); // new category id's
    

提交回复
热议问题