Laravel-尝试获取非对象的属性“name”
我正在制作一个视图,显示用户和他们工作的公司 在我的用户模型中,我返回如下视图:Laravel-尝试获取非对象的属性“name”,laravel,Laravel,我正在制作一个视图,显示用户和他们工作的公司 在我的用户模型中,我返回如下视图: return view('users.index', ['users' => $model->all()]); @foreach ($users as $user) <tr> <td>{{ $user->name }}</td>
return view('users.index', ['users' => $model->all()]);
@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
模型$model->all是我的用户模型
然后在index.blade文件中,我循环遍历如下数据:
return view('users.index', ['users' => $model->all()]);
@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时,出现以下错误:
正在尝试获取非对象的属性“name”
我尝试使用dd$user->company进行调试,它显示了连接到用户的公司的所有公司信息。然后我尝试dd$user->company->name,它显示了公司名称
我不明白为什么我不能只显示$user company->name而不显示错误,但是当我添加$user->company->name时,它会显示公司名称
有人能给我指出正确的方向吗。它可能显示了一个错误,因为您的一个用户没有公司。循环的第一个循环有一个,这就是为什么当你添加$user->company时,你会看到一个company。但这并不意味着第二个或第三个有一个。您可以执行if语句以捕获任何空公司。差不多
if($user->company == null){
dd($user);
}
或者,您可以只执行dd$users->pull'company',id;,它将向您显示一个集合,其中用户id为键,关联公司或null为值。它可能显示错误,因为您的一个用户没有公司。循环的第一个循环有一个,这就是为什么当你添加$user->company时,你会看到一个company。但这并不意味着第二个或第三个有一个。您可以执行if语句以捕获任何空公司。差不多
if($user->company == null){
dd($user);
}
或者,您可以只执行dd$users->pull'company',id;,这将向您显示一个集合,其中用户id为键,相关公司或null为值。您可以使用可选的帮助程序来解决此问题。有些用户没有公司。因此,您可以将它们显示为可选的$user->company->name,如果用户没有公司,则不会出现错误。您可以使用可选的帮助器来解决此问题。有些用户没有公司。因此,您可以将它们显示为可选的$user->company->name,如果用户没有公司,则不会出现错误。如果您尝试获取关系对象值,则可能会出现这种类型的错误。因为有些用户没有公司详细信息 试试下面的代码
{{ @$user->company->name }}
如果您试图获取关系对象值,则很可能会出现这种类型的错误。因为有些用户没有公司详细信息 试试下面的代码
{{ @$user->company->name }}
看来用户和公司有关系。我猜你的一个用户对象没有公司信息。当您转储所有用户对象时,是否检查所有用户的公司是否存在?似乎用户模式与公司有关系。我猜你的一个用户对象没有公司信息。转储所有用户对象时,是否检查所有用户的公司是否存在?