如何使用 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
模型。
在我对 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
模型。