#laravel #eloquent
Вопрос:
Я столкнулся со странной проблемой: у меня есть 2 страницы с аналогичной структурой, относящиеся к одной и той же базе данных, на первой из которых отображается сетка продуктов, работающих идеально, а вторая деталь товара выдает мне эту ошибку. Я могу получить все JSON string {{$wine}}
на странице, но не могу извлечь элементы с {{$wine->Eng2}}
помощью или {{$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']);
Комментарии:
1. Большое спасибо. Это работает идеально. Так много нужно узнать …
Ответ №1:
Попробуйте использовать
$wine = Wine::where('ART','=',$id)->first();
вместо
$wine = Wine::where('ART','=',$id)->get();
first()
это даст вам первый элемент в коллекции, но get()
даст вам всю коллекцию, так что вы можете использовать first()
, если в коллекции есть один элемент, или вам нужно использовать foreach в представлении.