1對一
定義一對一關聯
一對一關聯是很基本的關聯。例如一個 User 模型會對應到一個 Phone 。 在 Eloquent 里可以像下面這樣定義關聯:
class User extends Model {
public function phone()
{
return $this->hasOne('App\Phone');
}
}
傳到 hasOne 方法里的第一個參數是關聯模型的類名稱。定義好關聯之后,就可以使用 Eloquent 的動態屬性取得關聯對象:
$phone = User::find(1)->phone;
SQL 會執行如下語句:
select * from users where id = 1
select * from phones where user_id = 1
注意, Eloquent 假設對應的關聯模型數據庫表里,外鍵名稱是基于模型名稱。在這個例子里,默認 Phone 模型數據庫表會以 user_id 作為外鍵。如果想要更改這個默認,可以傳入第二個參數到 hasOne 方法里。更進一步,您可以傳入第三個參數,指定關聯的外鍵要對應到本身的哪個字段:
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 兩表聯查示例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
您可能感興趣的文章:- laravel orm 關聯條件查詢代碼
- Laravel Eloquent ORM 多條件查詢的例子
- Laravel ORM 數據model操作教程