圖文詳解laravel多對(duì)多關(guān)聯(lián)模型
關(guān)聯(lián)模型(多對(duì)多)
多對(duì)多關(guān)系(抽象)
例:一篇文章可能有多個(gè)關(guān)鍵詞,一個(gè)關(guān)鍵詞可能被多個(gè)文章使用。 關(guān)鍵詞表:
字段id | 主鍵 |
---|---|
字段keyword | 關(guān)鍵詞 |
文章與關(guān)鍵詞的關(guān)系表: | |
字段id | 主鍵 |
-- | -- |
字段article_id | 文章id |
字段key_id | 關(guān)鍵詞id |
創(chuàng)建遷移文件: | |
php artisan make:migration create_keyword_table |
|
php artisan make:migration create_relation_table |
|
![]() |
|
編寫(xiě)遷移文件的代碼: | |
![]() |
|
![]() |
|
執(zhí)行遷移php artisan migrate |
|
![]() |
|
![]() |
|
創(chuàng)建填充器: | |
php artisan make:seeder KeywordAndRelationTableSeeder |
|
![]() |
|
編寫(xiě)填充器數(shù)據(jù): |
<?php namespace Database\Seeders; use Illuminate\Database\Seeder; use DB; class KeywordAndRelationTableSeeder extends Seeder { /** * Run the database seeds. * * @return void */ public function run() { //關(guān)鍵詞數(shù)據(jù) DB::table('keyword') -> insert([ ['keyword' => '搞笑'], ['keyword' => '文藝'], ['keyword' => '正片'], ['keyword' => '驚悚'], ['keyword' => '娛樂(lè)'], ['keyword' => '武術(shù)'], ]); //關(guān)系表 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) ], ]); } }
執(zhí)行填充器: php artisan db:seed --class=KeywordAndRelationTableSeeder
案例:查詢出每個(gè)文章(主)下全部的關(guān)鍵詞(從) 語(yǔ)法:
return $this -> belongsToMany(被關(guān)聯(lián)模型的元素空間路徑, 多對(duì)多模型的關(guān)系表名, 關(guān)系表中當(dāng)前模型中的關(guān)系鍵,關(guān)系表中被關(guān)聯(lián)模型的關(guān)系鍵)
上述語(yǔ)法提及到的關(guān)系鍵是指在關(guān)系表中的字段名。 創(chuàng)建關(guān)鍵詞模型: php artisan make:model Keyword
創(chuàng)建案例路由:
創(chuàng)建案例控制方法:
效果:
總結(jié)
到此這篇關(guān)于laravel多對(duì)多關(guān)聯(lián)模型的文章就介紹到這了,更多相關(guān)laravel多對(duì)多關(guān)聯(lián)模型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
PHP調(diào)用C#開(kāi)發(fā)的dll類庫(kù)方法
這篇文章主要介紹了PHP調(diào)用C#開(kāi)發(fā)的dll類庫(kù)方法,包含一個(gè)完整的詳細(xì)的DLL制作步驟和PHP調(diào)用方法,需要的朋友可以參考下2014-07-07php數(shù)字運(yùn)算驗(yàn)證碼的實(shí)現(xiàn)代碼
這篇文章主要介紹了php實(shí)現(xiàn)數(shù)字運(yùn)算驗(yàn)證碼的方法,具有一定借鑒價(jià)值,需要的朋友可以參考下2015-07-07Laravel模型間關(guān)系設(shè)置分表的方法示例
這篇文章主要給大家介紹了關(guān)于Laravel模型間關(guān)系設(shè)置分表的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。2018-04-04php利用單例模式實(shí)現(xiàn)日志處理類庫(kù)
該日志類利用單例模式,節(jié)省資源。自行判斷文件大小,超出指定大小則按序自行創(chuàng)建文件。2014-02-02詳解PHP使用日期時(shí)間處理器Carbon人性化顯示時(shí)間
本篇文章主要介紹了詳解PHP使用日期時(shí)間處理器Carbon人性化顯示時(shí)間,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08