圖文詳解laravel多對多關聯模型
阿新 • • 發佈:2021-08-13
關聯模型(多對多)
多對多關係(抽象)
例:一篇文章可能有多個關鍵詞,一個關鍵詞可能被多個文章使用。 關鍵詞表:
欄位id | 主鍵 |
---|---|
欄位keyword | 關鍵詞 |
文章與關鍵詞的關係表: | |
欄位id | 主鍵 |
-- | -- |
欄位article_id | 文章id |
欄位key_id | 關鍵詞id |
建立遷移檔案: | |
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
*/http://www.cppcns.com
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)
],[
TZIIJjPdQr 'article_id' => rand(1,[
'article_id' => rand(1,]);
}
}
執行填充器: php artisan db:seed --class=KeywordAndRelationTableSeeder
案例:查詢出每個文章(主)下全部的關鍵詞(從) 語法:
return $this -> belongsToMany(被關聯模型的元素空間路徑,多對多模型的關係表名,關係表中當前模型中的關係鍵,關係表中被關聯模型的關係鍵)
上述語法提及到的關係鍵是指在關係表中的欄位名。 建立關鍵詞模型: php artisan make:model Keyword
建立案例路由:
建立案例控制方法:
效果:
總結
到此這篇關於laravel多對多關聯模型的文章就介紹到這了,更多相關laravel多對多關聯模型內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!