网络编程
位置:首页>> 网络编程>> php编程>> 图文详解laravel多对多关联模型

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

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

标签:laravel,多对多,关联模型

关联模型(多对多)

多对多关系(抽象)

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

字段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

0
投稿

猜你喜欢

手机版 网络编程 asp之家 www.aspxhome.com