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对象