Laravel 中的又一個輔助函數 optional()
能夠容許你訪問給定對象的屬性或者方法。若是給定的對象是 null
,屬性或方法將會返回 null
代替返回 error
。php
下面舉例來看下。app
// app/Models/User.php class User extends Model { //... public function account() { //... } //... }
// user1 存在,account 對象也存在 $user1 = User::find(1); $accountId = $user1->account->id; // 123 // user2 存在,可是 account 對象不存在 $user2 = User::find(2); $accountId = $user2->account->id; //這時會報: PHP Error: Trying to get property of non-object // 若是不用 optional(), 你可能會這麼判斷 $accountId = $user2->account ? $user2->account->id : null; // null $accountId = $user2->account->id ?? null; // null // 用 optional(),簡單搞定,是不看起來很優雅呢 $accountId = optional($user2->account)->id; // null
當使用不可用的對象或調用不可用的Eloquent關係中的嵌套數據時,optional()
助手是理想選擇。函數
不妨你也試試吧 ^_^code
更多PHP知識,可前往 PHPCasts對象