我有两个表..
用户和用户元
我用hasOne((在他们之间建立了关系。
型
public function user_meta() {
return $this->hasOne('AppUserMeta');
}
控制器
public function index() {
$users = User::orderBy('id', 'desc')->paginate(10);
return view('users.index')->with('users', $users);
}
视图
@forelse ($users as $user)
{{ $user->user_meta->country }}
@empty
@endforelse
此返回错误
试图获取非对象的属性"国家">
但是在这里,如果我像这样使用dd((。
@forelse ($users as $user)
{{ dd($user->user_meta->country) }}
@empty
@endforelse
我可以正确看到值返回。美国
dd
第一个元素的停止循环执行。如果使用dump
帮助程序,则在多次迭代后将再次看到此错误。您需要检查null
:
@forelse ($users as $user)
@if(!is_null($user->user_meta))
{{ $user->user_meta->country }}
@endif
@empty
@endforelse