推薦Laravel中又一個好用的helper

Laravel 中的又一個輔助函數 optional() 能夠容許你訪問給定對象的屬性或者方法。若是給定的對象是 null,屬性或方法將會返回 null 代替返回 errorphp

下面舉例來看下。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對象

相關文章
相關標籤/搜索