【发布时间】:2019-12-13 01:24:40
【问题描述】:
我正在制作一个显示用户和他们工作的公司的视图。
在我的用户模型中,我返回如下视图:
return view('users.index', ['users' => $model->all()]);
模型 $model->all() 是我的用户模型。
然后在我的 index.blade 文件中,我像这样遍历数据:
@foreach ($users as $user)
<tr>
<td>{{ $user->name }}</td>
<td>
<a href="mailto:{{ $user->email }}">{{ $user->email }}</a>
</td>
<td>{{ $user->created_at->format('d/m/Y H:i') }}</td>
<td>{{ $user->company->name }}</td>
<td class="text-right">
<div class="dropdown">
<a class="btn btn-sm btn-icon-only text-light" href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
<i class="fas fa-ellipsis-v"></i>
</a>
<div class="dropdown-menu dropdown-menu-right dropdown-menu-arrow">
@if ($user->id != auth()->id())
<form action="{{ route('user.destroy', $user) }}" method="post">
@csrf
@method('delete')
<a class="dropdown-item" href="{{ route('user.edit', $user) }}">{{ __('Edit') }}</a>
<button type="button" class="dropdown-item" onclick="confirm('{{ __("Are you sure you want to delete this user?") }}') ? this.parentElement.submit() : ''">
{{ __('Delete') }}
</button>
</form>
@else
<a class="dropdown-item" href="{{ route('profile.edit') }}">{{ __('Edit') }}</a>
@endif
</div>
</div>
</td>
</tr>
@endforeach
但是当我尝试显示 $user->company->name 时出现以下错误:
试图获取非对象的属性“名称”
我尝试使用 dd($user->company) 进行调试,它显示了连接到用户的公司的所有公司信息。然后我尝试了 dd($user->company->name) 并显示了公司名称。
我不明白为什么我不能只显示 $user-company->name 而不会出现错误,但是当我 dd($user->company->name) 时它会显示公司名称。
谁能指出我正确的方向。
【问题讨论】:
-
似乎用户模式与公司有关系。而且我猜您的用户对象之一没有公司信息。当您转储所有用户对象时,您是否检查了所有用户的公司存在?
标签: laravel