laravel model 兩表聯(lián)查示例
1對一
定義一對一關(guān)聯(lián)
一對一關(guān)聯(lián)是很基本的關(guān)聯(lián)。例如一個 User 模型會對應(yīng)到一個 Phone 。 在 Eloquent 里可以像下面這樣定義關(guān)聯(lián):
class User extends Model {
public function phone()
{
return $this->hasOne('App\Phone');
}
}
傳到 hasOne 方法里的第一個參數(shù)是關(guān)聯(lián)模型的類名稱。定義好關(guān)聯(lián)之后,就可以使用 Eloquent 的動態(tài)屬性取得關(guān)聯(lián)對象:
$phone = User::find(1)->phone;
SQL 會執(zhí)行如下語句:
select * from users where id = 1 select * from phones where user_id = 1
注意, Eloquent 假設(shè)對應(yīng)的關(guān)聯(lián)模型數(shù)據(jù)庫表里,外鍵名稱是基于模型名稱。在這個例子里,默認(rèn) Phone 模型數(shù)據(jù)庫表會以 user_id 作為外鍵。如果想要更改這個默認(rèn),可以傳入第二個參數(shù)到 hasOne 方法里。更進(jìn)一步,您可以傳入第三個參數(shù),指定關(guān)聯(lián)的外鍵要對應(yīng)到本身的哪個字段:
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();
以上這篇laravel model 兩表聯(lián)查示例就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
php的sprintf函數(shù)的用法 控制浮點(diǎn)數(shù)格式
這篇文章主要介紹了php的sprintf函數(shù)的用法,需要的朋友可以參考下2014-02-02
thinkPHP5使用Rabc實現(xiàn)權(quán)限管理
這篇文章主要介紹了thinkPHP5使用Rabc實現(xiàn)權(quán)限管理功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08
Window 7/XP 安裝Apache 2.4與PHP 5.4 的過程詳解
本篇文章是對Window 7/XP 安裝Apache 2.4與PHP 5.4 的過程進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06
laravel yajra插件 datatable的使用詳解
這篇文章主要介紹了laravel yajra插件 datatable的使用詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-01-01
PHP的Yii框架中使用數(shù)據(jù)庫的配置和SQL操作實例教程
這篇文章主要介紹了PHP的Yii框架中使用數(shù)據(jù)庫的配置和SQL操作實例教程,Yii支持綁定多種數(shù)據(jù)庫,文中主要對各種查詢語句在Yii中的使用給出了例子,需要的朋友可以參考下2016-03-03

