圖文詳解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
{
    /**
     * 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

​​​​​​​

 

 

創建案例路由:

創建案例控制方法:

效果:

總結

到此這篇關於laravel多對多關聯模型的文章就介紹到這瞭,更多相關laravel多對多關聯模型內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: