2018/08/10

Naming convention for Eloquent relation method

Laravel Relation Function Name 如果要使用兩個字時,需要注意命名規則。

習慣上我會使用 camelCase 命名:如

public function mobilePhones () {
    return $this->hasMany(MobilePhone::class);
}

但是直接使用 $user->mobilePhones 去拿資料時,
Eloquent 是不會到 db 抓資料的,
只會給回傳空的 Collection


使用 $user->mobile_phones 會回傳 null

解決方法是採用 snake_case 命名

public function mobile_phones () {
    return $this->hasMany(MobilePhone::class);
}

就可以使用 $user->mobile_phones 抓到資料了