圖文詳解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!
推薦閱讀:
- php artisan命令信息列舉
- php+laravel 掃碼二維碼簽到功能
- mysql通過INSERT IGNORE INTO插入拼音字符無效問題及解決
- php中laravel調度執行錯誤解決方法
- 清除laravel緩存命令代碼實例