如何使用 with 运算符改进 Laravel 代码?

How to improve Laravel code using with operator?

在我对 DB 的请求中,我使用了 Laravel 的模型和函数 with,例如:

$user = User::with("city")->get();

问题是如果在模板中执行以下操作:

{{$user->city()->name}}

只有当用户指定城市时它才会起作用,因此数据库中存在值 table。否则它 returns 一个错误:

如何删除多余的检查,例如:

@if(isset($user->city()->name))
   {{$user->city()->name}}
@endif

这太棒了!

在模型上定义关系时,使用 withDefault 方法:

class User extends Model
{
    public function city()
    {
        return $this->hasOne(City::class)->withDefault();
    }
}

有了这个,$user->city 将始终 return 一个 City 模型。