在 Laravel 新版本當中,有一個很是有用的輔助方法:optional()
php
這個方法的應用場景是什麼呢?其實若是你多寫代碼的話,常常會遇到相似下面的報錯信息:數據庫
Call to a member function on null object...
這實際上是在咱們的代碼中存在着某個對象爲空,因此在咱們調用方法或者獲取屬性的時候就會報出以上錯誤信息。好比咱們舉個例子:函數
在
User
的體系中,咱們也有Profile
的 Model 文件,而一個User
擁有一個Profile
(Profile
中包含用戶的地址信息)this
public function profile(){ return $this->hasOne(Profile::class); }
而後在咱們 User
的信息頁面,咱們但願經過下面的代碼獲取 User
的地址:spa
$user->profile->address;
若是在數據庫中,咱們沒有該 User
對應的 Profile
,這個時候就會出現文章開始說到的相似錯誤了。code
因此,這個時候,
optional()
就能夠派上用場了對象
咱們只須要這樣獲取用戶的地址信息就好:圖片
optional$user->profile)->address
這個時候,即便 profile
爲空值(null
),這一行代碼也不會報錯,而是會顯示一個空的字符串出來。
是否是很是有用!有了 optional()
這個輔助函數以後,在不少相似的代碼中,在你不肯定是否該對象會爲 null
的時候,就能夠加上 optional()
來作保險了!字符串
關注公衆號 codecasts ,天天更新 PHP Laravel 技能it