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 moviessad 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一对多的主要内容,如果未能解决你的问题,请参考以下文章

Laravel5.1 模型--关联关系(复杂)

一对多和一对多的关系 laravel

Laravel Eloquent - 保存/更新相关的一对多关系数据

Laravel 一对多关系和一对一关系

Laravel:belongsTo()关系假设一对多关系而不是一对一

laravel ORM 一对一 一对多 多对多 原生的MYSQL怎么写