多对多就相当于一个专题Topic有多个文章,但是这多个文章又属于多个专题,下面这篇文章主要给大家介绍了关于laravel多对多关联模型的相关资料,需要的朋友可以参考下

关联模型(多对多)

多对多关系(抽象)

例:一篇文章可能有多个关键词,一个关键词可能被多个文章使用。 关键词表:

字段id 主键
字段keyword 关键词
文章与关键词的关系表:
字段id 主键


字段article_id 文章id
字段key_id 关键词id
创建迁移文件:
php artisan make:migration create_keyword_table
php artisan make:migration create_relation_table


编写迁移文件的代码:


执行迁移php artisan migrate


创建填充器:
php artisan make:seeder KeywordAndRelationTableSeeder
编写填充器数据:
`<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use DB;

class KeywordAndRelationTableSeeder extends Seeder
{
/**

  1. * Run the database seeds.
  2. *
  3. * @return void
  4. */
  5. public function run()
  6. {
  7. //关键词数据
  8. DB::table('keyword') -> insert([
  9. ['keyword' => '搞笑'],
  10. ['keyword' => '文艺'],
  11. ['keyword' => '正片'],
  12. ['keyword' => '惊悚'],
  13. ['keyword' => '娱乐'],
  14. ['keyword' => '武术'],
  15. ]);
  16. //关系表
  17. DB::table('relation') -> insert([
  18. [
  19. 'article_id' => rand(1,3),
  20. 'keyword_id' => rand(1,6)
  21. ],
  22. [
  23. 'article_id' => rand(1,3),
  24. 'keyword_id' => rand(1,6)
  25. ],
  26. [
  27. 'article_id' => rand(1,3),
  28. 'keyword_id' => rand(1,6)
  29. ],
  30. [
  31. 'article_id' => rand(1,3),
  32. 'keyword_id' => rand(1,6)
  33. ],
  34. ]);
  35. }

}`

执行填充器: php artisan db:seed —class=KeywordAndRelationTableSeeder


案例:查询出每个文章(主)下全部的关键词(从) 语法:

1
return $this -> belongsToMany(被关联模型的元素空间路径, 多对多模型的关系表名, 关系表中当前模型中的关系键,关系表中被关联模型的关系键)

上述语法提及到的关系键是指在关系表中的字段名。 创建关键词模型: php artisan make:model Keyword



创建案例路由:

创建案例控制方法:

效果:

更多相关文章

  1. Android(安卓)Native Browser下载存储路径选择
  2. 复制mysql数据表里的多条记录,并插入表里面
  3. Android的版本(Version)和API-level的对应关系
  4. Android(安卓)获取手机联系人信息
  5. MyCms 开源自媒体系统,系统配置字段说明
  6. 人物肩部怎么画?漫画头颈肩的画法
  7. Java11中基于嵌套关系的访问控制优化详解
  8. android:inputType的XML与Java代码对应关系
  9. 详解MySQL开启远程连接权限

随机推荐

  1. 如何用linux手机打电话给linux?
  2. Linux软件管理-YUM
  3. SUSE12SP3-Mycat(3)Server.xml配置详解
  4. UNIX-LINUX编程实践教程->第八章->实例代
  5. 在linux mint x x64上安装xv6
  6. 在linux操作系统下,进行j2ee的web开发,是怎
  7. DB2 v8.1 for Linux无法安装!求助!
  8. [置顶] linux下Redis服务器部署过
  9. shell用户配置详解及bash命令参数
  10. Linux - 模块编程初试