laravel - 此集合实例上不存在 Laravel8 属性 [Eng2]
问题描述
我面临一个奇怪的问题:我有 2 个页面具有与相同数据库相关的相似结构,第一个页面显示了一个完美运行的产品网格,第二个页面是项目详细信息给了我这个错误。我可以JSON string {{$wine}}
在页面上获取所有内容,但无法使用{{$wine->Eng2}}
or提取元素{{$wine['Eng2']}}
@extends('layouts.layout')
@include('partials.sidebar')
<div class="detail-container">
<img src="/img/9122705276958.png" alt="" />
<ul>
<!--<li>{{$wine}}</li>-->
<li>{{$wine->Eng2}}</li>
<li></li>
</ul>
<!--<div class="addCart">
<i class="fas fa-shopping-cart"></i>
</div>
<ul class="side-icons">
<span><i class="fas fa-search"></i></span>
<span><i class="far fa-heart"></i></span>
<span><i class="fas fa-sliders-h"></i></span>
</ul>
</div>
<div class="bottom">
<ul>
<li></li>
<li></li>
</ul>
<ul class="price">
<li>Retail price: Ntd </li>
<li>Member price: Ntd </li>
<li>VIP price down to: Ntd </li>
</ul>
</div> -->
</div>
public function detail($id) {
$wine =Wine::where('ART','=',$id)->get();
return view('detail', [
'wine' => $wine
]);
}
Route::get('wines', [WineController::class,'index']);
Route::get('/wines/{id}',[WineController::class,'query']);
Route::get('detail/{id}', [WineController::class,'detail']);
解决方案
尝试使用
$wine = Wine::where('ART','=',$id)->first();
代替
$wine = Wine::where('ART','=',$id)->get();
first()
将为您获取集合中的第一个元素,但get()
将为您获取整个集合,因此first()
如果集合有一个元素,您可以使用,或者您必须在视图中使用 foreach。
推荐阅读
- spring - 如果应用程序中抛出异常,Spring 不会回滚事务
- python - 在请求中提交表单后处理重定向
- spring-boot - Spring Boot 应用程序的 Tomcat 7 部署问题
- javafx - 获取 java.lang.NoSuchMethodException: javafx.application.Platform.startup(java.lang.Runnable)
- javascript - ajax .show() 在注册时不显示隐藏的 div?
- angular - 属性“AppBrowserModule”必须后跟一个“:”Angular 6 Universal
- android - FBSDK Share 在 react-native 应用程序中不起作用。仅在某些安卓设备上
- android - 如何为 armv8 编译本机库?
- xml - XSLT 连接节点
- php - 在 PHP 中循环遍历数组/Json 对象