91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Laravle eloquent多對多模型關聯

發布時間:2021-09-29 10:20:55 來源:億速云 閱讀:113 作者:iii 欄目:開發技術

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

什么是多對多關聯?

Eloquent中一個模型就是一個數據表,數據表之間通常會有關聯,多對多關聯就是2個表之間相互有很多關聯,比如說:一個表存放了用戶數據,

如何理解Laravle eloquent多對多模型關聯 

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

如何理解Laravle eloquent多對多模型關聯 

一個用戶可以收藏多篇文章,一篇文章也可以被多個用戶收藏,這就是 多對多關聯 。

怎么用多對多關聯?

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

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

舉個栗子

我們數據庫里的三張表是user

如何理解Laravle eloquent多對多模型關聯 

articles

如何理解Laravle eloquent多對多模型關聯 

article_collections

如何理解Laravle eloquent多對多模型關聯 

我們需要創建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{
}

通過在模型里寫一個方法調用belongToMany()方法并返回結果來獲取數據。

belongToMany()里傳入的第一個參數是對應表,第二個參數是中間表的表名,第三個參數是當前模型在中間表的鍵名,第四個參數是關聯模型在中間表的鍵名。

<?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()等方法對查詢的數據添加條件

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

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

用detach()方法去除關聯,方法和attach()一樣。

OK 以上就是Laravel eloquent 多對多關聯的一些基礎知識了。

到此,相信大家對“如何理解Laravle eloquent多對多模型關聯”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

三江| 三原县| 澎湖县| 三门县| 寿光市| 深州市| 峨边| 沅江市| 广汉市| 浙江省| 东丰县| 永昌县| 赤水市| 灌云县| 白朗县| 界首市| 大荔县| 多伦县| 武宁县| 安化县| 旬邑县| 泾阳县| 泽库县| 罗城| 镇巴县| 蒲江县| 会同县| 罗山县| 定安县| 石首市| 泗洪县| 西和县| 新野县| 保德县| 武宣县| 和龙市| 泸州市| 屯门区| 建瓯市| 屏山县| 舒兰市|