对象的laravel集合
如何将集合转换为对象,以便访问关系表数据,因为我遇到以下错误。 尝试获取非对象的属性(视图:E:\xampp\htdocs\digi\resources\views\admin\View all location.blade.php)对象的laravel集合,laravel,eloquent,Laravel,Eloquent,如何将集合转换为对象,以便访问关系表数据,因为我遇到以下错误。 尝试获取非对象的属性(视图:E:\xampp\htdocs\digi\resources\views\admin\View all location.blade.php) 控制器: $locations=Location::all(); 返回视图('admin.view all location')->带位置($locations); 视图:: @如果(!计数($locations)>0) 没有添加位置 @恩迪夫 @foreach(
控制器:
$locations=Location::all();
返回视图('admin.view all location')->带位置($locations);
视图::
@如果(!计数($locations)>0)
没有添加位置
@恩迪夫
@foreach($locations作为$location)
{{$location->name}
{{$location->company->name}
{{$location->module->name}
{{$location->address}
{{$location->created_at->format('d.m.Y')}
@endforeach
您应该尝试以下方法:
控制器
$locations = Location::with(['company','module'])->get();
return view('admin.view-all-location',compact('locations'));
$locations = Location::with(['company','module'])->get();
return view('admin.view-all-location',["locations"=>$locations]);
查看
<tbody>
@if(isset($locations) && count($locations) > 0)
@foreach($locations as $location)
<tr class="odd gradeX">
<td>{{$location->name}}</td>
<td>{{ $location->company->name }}</td>
<td>{{$location->module->name}}</td>
<td>{{$location->address}}</td>
<td>{{$location->created_at->format('d.m.Y')}}</td>
</tr>
@endforeach
@else
<th>No Location Added</th>
@endif
</tbody>
<tbody>
@if($locations->isEmpty())
<th>No Location Added</th>
@endif
@foreach($locations as $location)
<tr class="odd gradeX">
<td>{{$location->name}}</td>
<td>{{ $location->company()->name }}</td>
<td>{{$location->module()->name}}</td>
<td>{{$location->address}}</td>
<td>{{$location->created_at->format('d.m.Y')}}</td>
</tr>
@endforeach
</tbody>
@if(设置($locations)和计数($locations)>0)
@foreach($locations作为$location)
{{$location->name}
{{$location->company->name}
{{$location->module->name}
{{$location->address}
{{$location->created_at->format('d.m.Y')}
@endforeach
@否则
没有添加位置
@恩迪夫
您应该尝试以下方法:
控制器
$locations = Location::with(['company','module'])->get();
return view('admin.view-all-location',compact('locations'));
$locations = Location::with(['company','module'])->get();
return view('admin.view-all-location',["locations"=>$locations]);
查看
<tbody>
@if(isset($locations) && count($locations) > 0)
@foreach($locations as $location)
<tr class="odd gradeX">
<td>{{$location->name}}</td>
<td>{{ $location->company->name }}</td>
<td>{{$location->module->name}}</td>
<td>{{$location->address}}</td>
<td>{{$location->created_at->format('d.m.Y')}}</td>
</tr>
@endforeach
@else
<th>No Location Added</th>
@endif
</tbody>
<tbody>
@if($locations->isEmpty())
<th>No Location Added</th>
@endif
@foreach($locations as $location)
<tr class="odd gradeX">
<td>{{$location->name}}</td>
<td>{{ $location->company()->name }}</td>
<td>{{$location->module()->name}}</td>
<td>{{$location->address}}</td>
<td>{{$location->created_at->format('d.m.Y')}}</td>
</tr>
@endforeach
</tbody>
@if(设置($locations)和计数($locations)>0)
@foreach($locations作为$location)
{{$location->name}
{{$location->company->name}
{{$location->module->name}
{{$location->address}
{{$location->created_at->format('d.m.Y')}
@endforeach
@否则
没有添加位置
@恩迪夫
您的一个位置没有关联的公司
或模块
。因此,访问$location->company->name
或$location->module->name
将抛出错误,因为您试图访问->name
的值为null
处理此问题的一些常见方法:
将isset
与三元运算符组合:
<td>{{ isset($location->company) ? $location->company->name : '' }}</td>
<td>{{ isset($location->module) ? $location->module->name : '' }}</td>
<td>{{ $location->company->name ?? '' }}</td>
<td>{{ $location->module->name ?? '' }}</td>
如果您使用的是PHP7,则可以使用空合并运算符:
<td>{{ isset($location->company) ? $location->company->name : '' }}</td>
<td>{{ isset($location->module) ? $location->module->name : '' }}</td>
<td>{{ $location->company->name ?? '' }}</td>
<td>{{ $location->module->name ?? '' }}</td>
{{$location->company->name???'}
{{$location->module->name???'}
您的一个位置没有关联的公司
或模块
。因此,访问$location->company->name
或$location->module->name
将抛出错误,因为您试图访问->name
的值为null
处理此问题的一些常见方法:
将isset
与三元运算符组合:
<td>{{ isset($location->company) ? $location->company->name : '' }}</td>
<td>{{ isset($location->module) ? $location->module->name : '' }}</td>
<td>{{ $location->company->name ?? '' }}</td>
<td>{{ $location->module->name ?? '' }}</td>
如果您使用的是PHP7,则可以使用空合并运算符:
<td>{{ isset($location->company) ? $location->company->name : '' }}</td>
<td>{{ isset($location->module) ? $location->module->name : '' }}</td>
<td>{{ $location->company->name ?? '' }}</td>
<td>{{ $location->module->name ?? '' }}</td>
{{$location->company->name???'}
{{$location->module->name???'}
使用get
而不是all
控制器
$locations = Location::with(['company','module'])->get();
return view('admin.view-all-location',compact('locations'));
$locations = Location::with(['company','module'])->get();
return view('admin.view-all-location',["locations"=>$locations]);
查看
<tbody>
@if(isset($locations) && count($locations) > 0)
@foreach($locations as $location)
<tr class="odd gradeX">
<td>{{$location->name}}</td>
<td>{{ $location->company->name }}</td>
<td>{{$location->module->name}}</td>
<td>{{$location->address}}</td>
<td>{{$location->created_at->format('d.m.Y')}}</td>
</tr>
@endforeach
@else
<th>No Location Added</th>
@endif
</tbody>
<tbody>
@if($locations->isEmpty())
<th>No Location Added</th>
@endif
@foreach($locations as $location)
<tr class="odd gradeX">
<td>{{$location->name}}</td>
<td>{{ $location->company()->name }}</td>
<td>{{$location->module()->name}}</td>
<td>{{$location->address}}</td>
<td>{{$location->created_at->format('d.m.Y')}}</td>
</tr>
@endforeach
</tbody>
@如果($locations->isEmpty())
没有添加位置
@恩迪夫
@foreach($locations作为$location)
{{$location->name}
{{$location->company()->name}
{{$location->module()->name}
{{$location->address}
{{$location->created_at->format('d.m.Y')}
@endforeach
使用get
而不是all
控制器
$locations = Location::with(['company','module'])->get();
return view('admin.view-all-location',compact('locations'));
$locations = Location::with(['company','module'])->get();
return view('admin.view-all-location',["locations"=>$locations]);
查看
<tbody>
@if(isset($locations) && count($locations) > 0)
@foreach($locations as $location)
<tr class="odd gradeX">
<td>{{$location->name}}</td>
<td>{{ $location->company->name }}</td>
<td>{{$location->module->name}}</td>
<td>{{$location->address}}</td>
<td>{{$location->created_at->format('d.m.Y')}}</td>
</tr>
@endforeach
@else
<th>No Location Added</th>
@endif
</tbody>
<tbody>
@if($locations->isEmpty())
<th>No Location Added</th>
@endif
@foreach($locations as $location)
<tr class="odd gradeX">
<td>{{$location->name}}</td>
<td>{{ $location->company()->name }}</td>
<td>{{$location->module()->name}}</td>
<td>{{$location->address}}</td>
<td>{{$location->created_at->format('d.m.Y')}}</td>
</tr>
@endforeach
</tbody>
@如果($locations->isEmpty())
没有添加位置
@恩迪夫
@foreach($locations作为$location)
{{$location->name}
{{$location->company()->name}
{{$location->module()->name}
{{$location->address}
{{$location->created_at->format('d.m.Y')}
@endforeach
在哪一行出现此错误?添加完整的错误尝试@if
和@else
然后@endif
在ur@else
中添加@foreach
可能$locations不返回任何内容。您是否有$locations中的数据返回控制器中的$locations,并显示您在哪一行获得此结果错误?添加完整的错误尝试@if
和@else
然后@endif
在ur@else
中添加@foreach
可能$locations不返回任何内容。您是否在$locations中有数据返回控制器中的$locations并显示输出如果该位置没有关联的公司或模块,则没有帮助$location->company
仍将是null
,在null
上调用->name
将抛出错误。如果该位置没有关联的公司或模块,这将不会有帮助$location->company
仍将是null
,在null
上调用->name
将抛出错误。