Laravel 的 optional 輔助函數

在 Laravel 新版本當中,有一個很是有用的輔助方法:optional()php

這個方法的應用場景是什麼呢?其實若是你多寫代碼的話,常常會遇到相似下面的報錯信息:數據庫

Call to a member function on null object...

這實際上是在咱們的代碼中存在着某個對象爲空,因此在咱們調用方法或者獲取屬性的時候就會報出以上錯誤信息。好比咱們舉個例子:函數

User 的體系中,咱們也有 Profile 的 Model 文件,而一個 User 擁有一個 ProfileProfile 中包含用戶的地址信息)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

相關文章
相關標籤/搜索