Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel-尝试获取非对象的属性“name”_Laravel - Fatal编程技术网

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 }}

看来用户和公司有关系。我猜你的一个用户对象没有公司信息。当您转储所有用户对象时,是否检查所有用户的公司是否存在?似乎用户模式与公司有关系。我猜你的一个用户对象没有公司信息。转储所有用户对象时,是否检查所有用户的公司是否存在?