图文详解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 | |
![]() | |
编写迁移文件的代码: | |
![]() | |
![]() | |
执行迁移php artisan migrate | |
![]() | |
![]() | |
创建填充器: | |
php artisan make:seeder KeywordAndRelationTableSeeder | |
![]() | |
编写填充器数据: |
<?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
案例:查询出每个文章(主)下全部的关键词(从) 语法:
return $this -> belongsToMany(被关联模型的元素空间路径, 多对多模型的关系表名, 关系表中当前模型中的关系键,关系表中被关联模型的关系键)
上述语法提及到的关系键是指在关系表中的字段名。 创建关键词模型: php artisan make:model Keyword
创建案例路由:
创建案例控制方法:
效果:
来源:https://blog.csdn.net/qq_57739390/article/details/119518887
标签:laravel,多对多,关联模型
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Python实现简易Web爬虫详解
2021-12-11 01:29:16
Python 中如何实现参数化测试的方法示例
2023-10-19 14:19:56
短视频(douyin)去水印工具的实现代码
2024-04-29 13:40:15
![](https://img.aspxhome.com/file/2023/5/132595_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/8/103568_0s.png)
MySQL 利用frm文件和ibd文件恢复表数据
2024-01-28 08:46:53
SQL 新增/修改 表字段列的类型等
2024-01-20 01:20:59
使用Python 统计文件夹内所有pdf页数的小工具
2022-07-06 23:21:46
![](https://img.aspxhome.com/file/2023/6/77686_0s.png)
Python数据提取-lxml模块
2022-04-03 15:15:19
![](https://img.aspxhome.com/file/2023/5/109585_0s.png)
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
![](https://img.aspxhome.com/file/2023/6/73006_0s.jpg)
anaconda jupyter不能导入安装的lightgbm解决方案
2021-09-15 19:24:45
![](https://img.aspxhome.com/file/2023/5/83855_0s.jpg)
Python如何获取文件指定行的内容
2023-08-13 09:45:37