如何理解Laravleeloquent多對多模型關(guān)聯(lián)-創(chuàng)新互聯(lián)

本篇內(nèi)容主要講解“如何理解Laravle eloquent多對多模型關(guān)聯(lián)”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“如何理解Laravle eloquent多對多模型關(guān)聯(lián)”吧!

創(chuàng)新互聯(lián)堅持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的岳池網(wǎng)站設(shè)計、移動媒體設(shè)計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

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

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

如何理解Laravle eloquent多對多模型關(guān)聯(lián)

另一個表存放了文章的信息,

如何理解Laravle eloquent多對多模型關(guān)聯(lián)

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

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

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

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

舉個栗子

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

如何理解Laravle eloquent多對多模型關(guān)聯(lián)

articles

如何理解Laravle eloquent多對多模型關(guān)聯(lián)

article_collections

如何理解Laravle eloquent多對多模型關(guān)聯(lián)

我們需要創(chuàng)建2個模型,中間表模型不是必須的

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

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

belongToMany()里傳入的第一個參數(shù)是對應(yīng)表,第二個參數(shù)是中間表的表名,第三個參數(shù)是當(dāng)前模型在中間表的鍵名,第四個參數(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')
  }
}

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

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

用where()、orderBy()等方法對查詢的數(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 多對多關(guān)聯(lián)的一些基礎(chǔ)知識了。

到此,相信大家對“如何理解Laravle eloquent多對多模型關(guān)聯(lián)”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)建站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

當(dāng)前標(biāo)題:如何理解Laravleeloquent多對多模型關(guān)聯(lián)-創(chuàng)新互聯(lián)
文章鏈接:http://bm7419.com/article22/ddjecc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄域名注冊、微信小程序全網(wǎng)營銷推廣、移動網(wǎng)站建設(shè)小程序開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

手機網(wǎng)站建設(shè)