2017-03-14 2 views
-2

단일 제품 페이지에 하나의 제품 만 표시하는 데 문제가 있습니다. 따라서 프론트 페이지에서 제품을 클릭하면 특정 제품을보고 싶습니다.단일 제품 페이지에서 ID별로 제품보기

이제 내가 클릭 한 제품 대신 모든 제품을 보게됩니다. 보기에

@foreach(App\Product::all() as $product) 
    <div class="col-sm-6 col-md-4"> 
     <div class="thumbnail"> 
      <img src= {{$product->imagePath}} alt="..."> 
      <div class="caption"> 
       <h3> {{$product->title}} </h3> 
       <p class="discription"> {{$product->discription}} </p> 
       <div class="clearfix"> 
        <div class="pull-left price"/>$ {{$product->price}}</div> 
       <a href= {{ route('product.addToCart', ['id' => $product->id ]) }} class="btn btn-danger pull-right" role="button">Add to cart</a> 
      </div> 
     </div> 
    </div> 
@endforeach 
+1

이 많은 수준에 대한 잘못된 것입니다. '@foreach (App \ Product :: all() $ product)'라고 쓰고 어떻게 하나의 제품을 보여줄 수 있을까요? 너무 광범위하게 닫는 투표 – Steve

+0

남자 나는 방금 배울뿐입니다. 당신이 나를 도와주지 않으면 대답 할 필요가 없습니다. – Mette

+0

나는 무례하게하려고하지 않습니다. 나는 단지 당신이 이런 질문을함으로써 무엇이든 배우고 있다고 생각하지 않는다. 복잡한 MVC 프레임 워크가 아니라 기본 (변수, 제어 구조)에 대해 작업해야합니다. – Steve

답변

0

: 이것은 뷰 (product.blade.php)입니다

public function getProduct($id)  
{ 
    $product = Product::find($id); 
    return view('pages.product', ['id' => $product->id]); 
} 

: 이것은 컨트롤러입니다

Route::get('/product/{id}', [ 
    'uses' => '[email protected]', 
    'as' => 'product.single' 
]); 

:

는 다른 루트 모든 제품을 루핑하고 있습니다.

@foreach(App\Product::all() as $product) 

그게 오류의 원인입니다.

당신은 당신은 Product 객체를 전달해야 제대로
$product = Product::find($id); 
return view('pages.product', ['product' => $product]); 

그런 다음보기에 당신은 단지 하나 개의 제품

<img src= {{$product->imagePath}} alt="..."> 
<div class="caption"> 
    <h3> {{$product->title}} </h3> 
    <p class="discription"> {{$product->discription}} </p> 
    <div class="clearfix"> 
     <div class="pull-left price"/>$ {{$product->price}}</div> 
     <a href= {{ route('product.addToCart', ['id' => $product->id ]) }} class="btn btn-danger pull-right" role="button">Add to cart</a> 
</div> 
+0

의견을 남겨주셔서 감사합니다! – Mette

0

를 표시 먼저 컨트롤러에서 제품을 반환해야합니다. 그래서, 변경 제어 방법에 :

public function getProduct($id) 
{ 
    $product = Product::find($id); 
    return view('pages.product', ['product' => $product]); 
} 

그리고보기에 당신은 @foreach and @endforeach

+0

의견을 남겨주셔서 감사합니다! – Mette

+0

안녕하세요, laravel이 내 경로를 변경하는 이유는 무엇입니까? .../public/product/js/bootstrap.min.js – Mette

0
반환하기 위해 getProduct 기능을 변경

제거해야합니다

return view('pages.product', ['product' => $product]); 
관련 문제