图文详解laravel多对多关联模型

作者:瑾! 时间:2023-06-12 22:21:34 

关联模型(多对多)

多对多关系(抽象)

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

字段id主键
字段keyword关键词
文章与关键词的关系表:
字段id主键
----
字段article_id文章id
字段key_id关键词id
创建迁移文件:
php artisan make:migration create_keyword_table
php artisan make:migration create_relation_table
图文详解laravel多对多关联模型
编写迁移文件的代码:
图文详解laravel多对多关联模型
图文详解laravel多对多关联模型
执行迁移php artisan migrate
图文详解laravel多对多关联模型
图文详解laravel多对多关联模型
创建填充器:
php artisan make:seeder KeywordAndRelationTableSeeder
图文详解laravel多对多关联模型
编写填充器数据:

<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;
use DB;

class KeywordAndRelationTableSeeder extends Seeder
{
   /**
    * Run the database seeds.
    *
    * @return void
    */
   public function run()
   {
       //关键词数据
       DB::table('keyword') -> insert([
           ['keyword' => '搞笑'],
           ['keyword' => '文艺'],
           ['keyword' => '正片'],
           ['keyword' => '惊悚'],
           ['keyword' => '娱乐'],
           ['keyword' => '武术'],
       ]);

       //关系表
       DB::table('relation') -> insert([
           [
               'article_id' => rand(1,3),
               'keyword_id' => rand(1,6)
           ],
           [
               'article_id' => rand(1,3),
               'keyword_id' => rand(1,6)
           ],
           [
               'article_id' => rand(1,3),
               'keyword_id' => rand(1,6)
           ],
           [
               'article_id' => rand(1,3),
               'keyword_id' => rand(1,6)
           ],
       ]);
   }
}

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

图文详解laravel多对多关联模型

 图文详解laravel多对多关联模型

 图文详解laravel多对多关联模型

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


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

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

图文详解laravel多对多关联模型

 图文详解laravel多对多关联模型

 图文详解laravel多对多关联模型

创建案例路由:

图文详解laravel多对多关联模型

创建案例控制方法:

图文详解laravel多对多关联模型

效果:

图文详解laravel多对多关联模型

来源:https://blog.csdn.net/qq_57739390/article/details/119518887

标签:laravel,多对多,关联模型
0
投稿

猜你喜欢

  • Python实现简易Web爬虫详解

    2021-12-11 01:29:16
  • Python 中如何实现参数化测试的方法示例

    2023-10-19 14:19:56
  • 短视频(douyin)去水印工具的实现代码

    2024-04-29 13:40:15
  • WEB2.0网页制作标准教程(6)XHTML代码规范

    2007-12-13 13:03:00
  • Python二叉树定义与遍历方法实例分析

    2023-06-26 17:26:56
  • Python绑定方法与非绑定方法详解

    2021-04-12 00:20:19
  • go 对象池化组件 bytebufferpool使用详解

    2024-02-10 14:26:11
  • 一文详解Python中生成器的原理与使用

    2021-11-29 16:52:55
  • MySQL case when使用方法实例解析

    2024-01-29 03:15:55
  • MySQL 利用frm文件和ibd文件恢复表数据

    2024-01-28 08:46:53
  • SQL 新增/修改 表字段列的类型等

    2024-01-20 01:20:59
  • 使用Python 统计文件夹内所有pdf页数的小工具

    2022-07-06 23:21:46
  • Python数据提取-lxml模块

    2022-04-03 15:15:19
  • SQLServer2005 没有日志文件(*.ldf) 只有数据文件(*.mdf) 恢复数据库的方法

    2024-01-24 00:15:37
  • Python调用REST API接口的几种方式汇总

    2023-01-06 16:42:17
  • Golang通脉之流程控制详情

    2024-02-20 06:56:34
  • 详解python播放音频的三种方法

    2021-12-16 09:19:11
  • python使用matplotlib显示图像失真的解决方案

    2021-03-30 22:31:02
  • anaconda jupyter不能导入安装的lightgbm解决方案

    2021-09-15 19:24:45
  • Python如何获取文件指定行的内容

    2023-08-13 09:45:37
  • asp之家 网络编程 m.aspxhome.com