数据表之间是纵横交叉、相互关联的,laravel的一对一,一对多比较好理解,官网介绍滴很详细了,在此我就不赘述啦,重点我记下多对多的关系。
一种常见的关联关系是多对多,即表A的某条记录通过中间表C与表B的多条记录关联,反之亦然。比如一个用户有多种角色,反之一个角色对应多个用户。
为了测试该关联关系,我们沿用官网的用户角色示例:
需要三张数据表:users、roles 和 role_user,role_user 表按照关联模型名的字母顺序命名(这里role_user是中间表),并且包含 user_id 和 role_id两个列。
多对多关联通过编写返回 belongsToMany 方法返回结果的方法来定义。废话不说多,直接上数据结构:
1:创建一个角色表roles,并添加一些初始化数据:
- SET FOREIGN_KEY_CHECKS=0;
- -- ----------------------------
- -- Table structureforusers
- -- ----------------------------
- DROP TABLE IF EXISTS `users`;
- CREATE TABLE `users` (
- `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
- `name` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
- `email` varchar(255) COLLATE utf8_unicode_ci NOT NULL,
- `password` varchar(60) COLLATE utf8_unicode_ci NOT NULL,
- `remember_token` varchar(100) COLLATE utf8_unicode_ci DEFAULT NULL,
- `created_at` timestamp NOT NULL DEFAULT
新闻热点
疑难解答