溫馨提示×

溫馨提示×

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

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

怎么在laravel中使用model實現(xiàn)兩表聯(lián)查

發(fā)布時間:2021-04-14 16:27:13 來源:億速云 閱讀:448 作者:Leah 欄目:開發(fā)技術

怎么在laravel中使用model實現(xiàn)兩表聯(lián)查?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

定義一對一關聯(lián)

一對一關聯(lián)是很基本的關聯(lián)。例如一個 User 模型會對應到一個 Phone 。 在 Eloquent 里可以像下面這樣定義關聯(lián):

class User extends Model {
 
 public function phone()
 {
  return $this->hasOne('App\Phone');
 }
 
}

傳到 hasOne 方法里的第一個參數(shù)是關聯(lián)模型的類名稱。定義好關聯(lián)之后,就可以使用 Eloquent 的動態(tài)屬性取得關聯(lián)對象:

$phone = User::find(1)->phone;

SQL 會執(zhí)行如下語句:

select * from users where id = 1
 
select * from phones where user_id = 1

注意, Eloquent 假設對應的關聯(lián)模型數(shù)據(jù)庫表里,外鍵名稱是基于模型名稱。在這個例子里,默認 Phone 模型數(shù)據(jù)庫表會以 user_id 作為外鍵。如果想要更改這個默認,可以傳入第二個參數(shù)到 hasOne 方法里。更進一步,您可以傳入第三個參數(shù),指定關聯(lián)的外鍵要對應到本身的哪個字段:

return $this->hasOne('App\Phone', 'foreign_key');
 
return $this->hasOne('App\Phone', 'foreign_key', 'local_key');

查詢多條

 $rolePermissions = Permission::join('permission_role', 'permission_role.permission_id', '=', 'permissions.id')
   ->where('permission_role.role_id', $id)
   ->get();

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

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

AI