Laravel 自定義存取器 客製化使用 lists

Home / PHP / Laravel / Laravel 自定義存取器 客製化使用 lists

一般常會呼叫某張DB中的tabel,例如要快速取得user中的id與name,搭配lists()的使用如下:

即可得到:

但是lists只限於只能使用2個欄位的取存,如果需要更多欄位的話,則需要先定義好,在Laravel中稱為「accessors and mutators」(存取器和修改器)。

例如我是想要快速查出這樣的格式:

這需要使用到4個欄位:id、display_name、username、email。
我們需要先在user的model中定義好這個存取器(app/model/User.php):

其中getUserInfoAttribute是需要駝峰式大小寫命名,意即你也可以定義成getXXXXXXXAttribute,接著在其他地方就可以直接呼叫user這個model中的存取器了,方法如下:

要注意的是在model中定義是使用駝峰式,而在使用時,需要用「_」,例如上面的「user_info」,即可得到:

 

參考資料:
http://www.neontsunami.com/posts/using-lists()-in-laravel-with-custom-attribute-accessors

1308 全部 1 今日

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *

*