這篇文章給大家分享的是有關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多對多關聯模型的示例分析”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。