Laravel 使用 Eloquent ORM 來操作 DB
- resource 對應 DB table
- model 對應 row
- 所以 model 是單數,table 是複數
- 而 Eloquent 取得的東西是 Collection
Relationships
資料庫難搞的關聯,在 Eloquent ORM 裡設定起來還蠻簡單的,而且還提供幾種比較特別的關聯法
One To One
比方說,一個 User
對應一個 UserSetting
,可以使用 hasOne
方法
class User extends Eloquent { |
使用 Dynamic Properties 取得關聯的物件:
$setting = User::find(1)->setting; |
這行程式碼背後執行的 SQL 如下:
SELECT * FROM users WHERE id = 1 |
相反的,要在 UserSetting
定義相對的關聯,可以使用 belongsTo
方法:
class UserSetting extends Eloquent { |
One To Many
比方說,一個 User
對應很多 Post
,可以使用 hasMany
方法:
class User extends Eloquent { |
使用 Dynamic Properties 取得 Post
$posts = User::find(1)->posts; |
相反的,要在 Post
取得相對的關聯,使用 belongsTo
方法:
class Post extends Eloquent { |