Laravel一对多
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel一对多相关的知识,希望对你有一定的参考价值。
使用Laravel我正在制作电影和系列存档Web应用程序。我被困在类别区域,我想要你的帮助。我告诉你我在哪里闲逛。在电影领域,电影可以进入多个类别。我想在列表中的电影页面上显示此类别中的电影。我也不知道怎么做。我很抱歉我的英语不好。
你必须首先创建三个表
movies
像这样的列
id,movie_name,movie_director,movice_info ..ect
id列应该是primary int not null auto increment
,第二个表将是
categorys
像这样的列
id,category_name,category_parent_id
现在id是主键,category_name是名称,但category_parent_id是大多数类别是树嵌套,所以它将是同一个表的id,它将是可空的你的类别表将看起来像这样
id category_name category_id
1 comedies movies null
2 actions comedies movies 1
3 drama comedies movies 1
4 dramas movies null
5 sad drama movies 4
请记住,您将把电影放在父类别中,但是在shild classesys内部,category category_id不为null,或者您可以创建一个名为category_ids
的anther表并放置其他关系
现在第三个表叫做
movie_categorys
这将有这个列
id,movie_category_movie_id,movie_category_category_id
假设你有三部电影都有这些数据
id movie name ect data
1 first move ect..
2 second movie ect ..
和这个类别
id category_name category_id
1 comedies movies null
2 actions comedies movies 1
3 drama comedies movies 1
4 dramas movies null
5 sad drama movies 4
你想要第一部电影actions comedies movies
和类别sad drama movies
你将把数据放在movie_categorys
这样的
id movie_category_movie_id movie_category_category_id
number 1 2
number 1 5
你想把第二部电影与分类drama comedies movies
和sad drama movies
以及actions comedies movies
放在一起,你的数据会是这样的
id movie_category_movie_id movie_category_category_id
number 2 2
number 2 3
number 2 5
这就是你现在如何存储数据让我们谈谈电影模型中的关系,通常它应该像这样调用
Movie
你必须写这种关系
电影属于许多类别和类别有很多电影我希望这回答你的问题
这是一个多对多的关系。你需要3个表:
movies
-id
category_movie
-movie_id
-category_id
categories
-id
在你的电影模型中定义de retaltionship
public function categories()
{
return $this->belongsToMany(Category::class);
}
以上是关于Laravel一对多的主要内容,如果未能解决你的问题,请参考以下文章
Laravel Eloquent - 保存/更新相关的一对多关系数据