主頁(yè) > 知識(shí)庫(kù) > Laravle eloquent 多對(duì)多模型關(guān)聯(lián)實(shí)例詳解

Laravle eloquent 多對(duì)多模型關(guān)聯(lián)實(shí)例詳解

熱門標(biāo)簽:福建高頻外呼防封系統(tǒng)哪家好 全國(guó)各省地圖標(biāo)注點(diǎn) 周口網(wǎng)絡(luò)回?fù)芡夂粝到y(tǒng) 外呼系統(tǒng)人工客服 百度地圖標(biāo)注類型是酒店 隨州銷售電銷機(jī)器人公司 400電話申請(qǐng)辦理 商丘外呼系統(tǒng)好處 網(wǎng)絡(luò)電話400申請(qǐng)

什么是多對(duì)多關(guān)聯(lián)?

Eloquent中一個(gè)模型就是一個(gè)數(shù)據(jù)表,數(shù)據(jù)表之間通常會(huì)有關(guān)聯(lián),多對(duì)多關(guān)聯(lián)就是2個(gè)表之間相互有很多關(guān)聯(lián),比如說(shuō):一個(gè)表存放了用戶數(shù)據(jù),

 

另一個(gè)表存放了文章的信息,

 

一個(gè)用戶可以收藏多篇文章,一篇文章也可以被多個(gè)用戶收藏,這就是 多對(duì)多關(guān)聯(lián) 。

怎么用多對(duì)多關(guān)聯(lián)?

使用Eloquent的多對(duì)多關(guān)聯(lián)可以很便捷的互相查詢、修改、增加、刪除兩個(gè)模型之間的關(guān)聯(lián)。

多對(duì)多關(guān)聯(lián)除了相互關(guān)聯(lián)的兩張表之外還需要一張記錄關(guān)聯(lián)的表(pivot表),一般記錄兩個(gè)模型的的ID就行

舉個(gè)栗子

我們數(shù)據(jù)庫(kù)里的三張表是user

 

articles

 

article_collections

 

我們需要?jiǎng)?chuàng)建2個(gè)模型,中間表模型不是必須的

?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Entity{
}
?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Articles extends Entity{
}

通過(guò)在模型里寫一個(gè)方法調(diào)用belongToMany()方法并返回結(jié)果來(lái)獲取數(shù)據(jù)。

belongToMany()里傳入的第一個(gè)參數(shù)是對(duì)應(yīng)表,第二個(gè)參數(shù)是中間表的表名,第三個(gè)參數(shù)是當(dāng)前模型在中間表的鍵名,第四個(gè)參數(shù)是關(guān)聯(lián)模型在中間表的鍵名。

?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Entity{
  public function articles()
  {
   return $this->belongToMany(Articles::class, 'article_collections', 'user_id', 'article_id')
  }
}

這樣我們就可以通過(guò)article方法得到user收藏的文章了

$articles = User::find(1)->articles()->get();

用where()、orderBy()等方法對(duì)查詢的數(shù)據(jù)添加條件

用attach()方法添加關(guān)聯(lián),比如讓id為1用戶收藏id為1的article

$user = User::find(1);
$user->articles()->attach(1) 

用detach()方法去除關(guān)聯(lián),方法和attach()一樣。

OK 以上就是Laravel eloquent 多對(duì)多關(guān)聯(lián)的一些基礎(chǔ)知識(shí)了。

總結(jié)

以上所述是小編給大家介紹的Laravle eloquent 多對(duì)多模型關(guān)聯(lián)實(shí)例詳解,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

您可能感興趣的文章:
  • Laravel關(guān)系模型指定條件查詢方法
  • laravel withCount 統(tǒng)計(jì)關(guān)聯(lián)數(shù)量的方法
  • Laravel 關(guān)聯(lián)模型-關(guān)聯(lián)新增和關(guān)聯(lián)更新的方法

標(biāo)簽:海南 迪慶 定西 六安 佛山 樂(lè)山 南寧 十堰

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Laravle eloquent 多對(duì)多模型關(guān)聯(lián)實(shí)例詳解》,本文關(guān)鍵詞  Laravle,eloquent,多對(duì),多,模型,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Laravle eloquent 多對(duì)多模型關(guān)聯(lián)實(shí)例詳解》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Laravle eloquent 多對(duì)多模型關(guān)聯(lián)實(shí)例詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章