摘要:所以,這個時候,就可以派上用場了我們只需要這樣獲取用戶的地址信息就好這個時候,即使為空值,這一行代碼也不會報錯,而是會顯示一個空的字符串出來。
在 Laravel 新版本當中,有一個非常有用的輔助方法:optional()
這個方法的應用場景是什么呢?其實如果你多寫代碼的話,經常會遇到類似下面的報錯信息:
Call to a member function on null object...
這其實是在我們的代碼中存在著某個對象為空,所以在我們調用方法或者獲取屬性的時候就會報出以上錯誤信息。比如我們舉個例子:
在 User 的體系中,我們也有 Profile 的 Model 文件,而一個 User 擁有一個 Profile (Profile 中包含用戶的地址信息)
public function profile(){ return $this->hasOne(Profile::class); }
然后在我們 User 的信息頁面,我們希望通過下面的代碼獲取 User 的地址:
$user->profile->address;
如果在數據庫中,我們沒有該 User 對應的 Profile,這個時候就會出現文章開始說到的類似錯誤了。
所以,這個時候,optional() 就可以派上用場了
我們只需要這樣獲取用戶的地址信息就好:
optional$user->profile)->address
這個時候,即使 profile 為空值(null),這一行代碼也不會報錯,而是會顯示一個空的字符串出來。
是不是非常有用!有了 optional() 這個輔助函數之后,在很多類似的代碼中,在你不確定是否該對象會為 null 的時候,就可以加上 optional() 來做保險了!
關注公眾號 codecasts ,每天更新 PHP Laravel 技能
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/26098.html
摘要:文章轉自包含各種全局輔助函數。返回應用程序中公共目錄的完全限定的絕對路徑。要解決此問題,只需運行以下命令即可使用包函數將字符串轉換為復數形式。該值將被傳遞給閉包,然后該值將被返回。方法返回布爾值,但由于用了,所以它將返回。 showImg(https://segmentfault.com/img/remote/1460000018944915?w=1408&h=846); 文章轉自:h...
摘要:要解決此問題,只需運行以下命令即可使用包函數將字符串轉換為復數形式。函數接受兩個參數一個值和一個閉包。該值將被傳遞給閉包,然后該值將被返回。更新方法返回布爾值,但由于用了,所以它將返回。這對調試非常有用。函數根據給定的字符串生成一個友好的。 Laravel包含各種全局輔助函數(helper), 你可以使用它們使開發工作流程更加輕松。 在這里,我將會列一下10個最好的 Laravel h...
摘要:函數允許你將多維數組轉換為使用點符號的一維數組。返回應用程序中公共目錄的完全限定的絕對路徑。要解決此問題,只需運行以下命令即可使用包將字符串轉換為復數形式。接受兩個參數一個值和一個閉包。該值將被傳遞給閉包,然后該值將被返回。 array_dot() 函數允許你將多維數組轉換為使用點符號的一維數組。 $array = [ user => [username => somethin...
摘要:本質是將為的請求轉化為追加的組內請求,對應的匿名函數依然是為的請求假如為,則返回優先從設置里面取值,沒有則生成單數形式的字符串,并將字符替換為小結資源類型的構造,實際上會被轉化為構造多個默認資源的路由,本質依然是基本構造 Laravel 路由 路由構造總覽 構造方法有: Route::get、Route::post、Route::put、Route::patch、Route::del...
摘要:發布于年月,從那時起大約每六個月會發布一次的新版本。將會支持相對較新的來管理項目中的環境文件。棄用和輔助函數所有的和全局輔助函數都已棄用,將在中刪除。將返回更干凈的相同值。和通知和通知已從主項目中刪除,并提取到第三方軟件包中。 showImg(https://segmentfault.com/img/remote/1460000018269419?w=585&h=400); 無論是從零...
閱讀 2801·2023-04-25 22:51
閱讀 2026·2021-10-11 10:58
閱讀 3308·2019-08-30 10:49
閱讀 1870·2019-08-29 17:09
閱讀 3136·2019-08-29 10:55
閱讀 839·2019-08-26 10:34
閱讀 3467·2019-08-23 17:54
閱讀 980·2019-08-23 16:06