Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
655 views
in Technique[技术] by (71.8m points)

php - Set up many to many relationship in laravel eloquent

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 defined it in post model.

public function category()
{
    return $this->belongsToMany('AppCategory');
}
See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

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

/**
 * The categories that belong to the product.
 */
public function categories()
{
    return $this->belongsToMany('AppCategory', '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('AppProduct', '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

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...