Dar*_*ama 0 laravel laravel-5.4
在我对DB的请求中,我使用Laravel的模型和功能with如下:
$user = User::with("city")->get();
Run Code Online (Sandbox Code Playgroud)
问题是如果要在模板中执行以下操作:
{{$user->city()->name}}
Run Code Online (Sandbox Code Playgroud)
只有当用户指定了city时才会起作用,因此数据库表中存在value.否则返回错误:
如何摆脱多余的检查,如:
@if(isset($user->city()->name))
{{$user->city()->name}}
@endif
Run Code Online (Sandbox Code Playgroud)
这真是太棒了!
在模型上定义关系时,请使用以下withDefault方法:
class User extends Model
{
public function city()
{
return $this->hasOne(City::class)->withDefault();
}
}
Run Code Online (Sandbox Code Playgroud)
有了这个,$user->city将永远返回一个City模型.