2017-05-03 7 views
0

私はLaravelを初めて利用しています。私は電子商取引アプリケーションで作業しています。このアプリでは、別のページ(1、2、3、...など)にすべての製品を表示する必要があります。ルートは/ products/1、/ products/2などです。現在、ページあたり10個の製品を表示するパターンを使用しています。Laravelのルートパラメータに基づいてコンテンツ(HTML)を表示する方法5.4

たとえば、31の製品がある場合、4ページ(ページの下部に4つのボタン)が表示されます。

第1ページ - > 10製品;

第2ページ - > 10製品;

3ページ目→10製品;

第4ページ - > 1製品;

私の質問はデータベース内でどのように反復し、これらの製品をそれぞれのルートに分散させるかです。私は(ブレードを使用して)これまで行ってきた:

@extends("template") 
 

 
@section("content") 
 

 
    @for($i = 0; $i < $number_of_buttons; $i++) <!-- iterate trough the number of buttons --> 
 

 
    @for($k = 0; $k < $NUMBER_OF_PRODUCTS_PER_PAGE; $k++) <!-- iterate trough all the products, but showing only a quantity of {{$NUMBER_OF_PRODUCTS_PER_PAGE}} products per page --> 
 
     <div class="row"> 
 
    \t <div class="col-xs-6"> 
 
    \t <img src="{{$products[$k]->image}}" class = "img-responsive" alt = "{{$products[$k]->name}}"> 
 
    \t </div> 
 
    \t <div class="col-xs-6"> 
 
    \t <h2>{{$products[$k]->name}}</h2> 
 
    \t <p>{{$products[$k]->description}} </p> 
 
      <p>{{$products[$k]->value}} </p> 
 
      <a href="/details/{{$products[$k]->id}}" class="btn btn-default">Details</a> 
 
    \t </div> 
 
     </div> 
 
    @endfor 
 

 
    @endfor 
 

 
@stop

ロジック自体はちょっと間違っているようだが、どのように私は、各ルートの製品に挿入するのですか?上記の例では、すべてのルートに同じ数の製品があります。可能であれば、どのように各ルートを受け取るのか、このコードでどのように具体化するのかを知りたい。私が十分に明確でない場合は、私に知らせてください。

+3

あなたは[改ページ](https://laravel.com/docs/5.4/paginationについて尋ねています)? – Ohgodwhy

+0

@Ohgodwhy私はそれが私が必要としていると思う。私はそれを見て、それが私の問題に答えるかどうかを見ます。ありがとう。 – Diego

+0

これを見てください。 https://laravel.com/docs/5.4/pagination私はあなたがこれを考えすぎていると思います。 Products :: get()の代わりにProducts :: paginate(10)をコントローラに入れ、次にブレードの一番下にある{{$ products-> links()}}自動的にページを区切ります。 – Scott

答えて

0

ページネーションは、私が探していたものです。私はロジックを考えて、すべての製品をページに表示することに時間を費やしました。私が言ったように私はlaravelのために私は新しいので、私はこの方法を知らなかった。おかげ@Ohgodwhyと@Scott

0
あなたのコントローラで

$products = Product::paginate(10); 
    return View::make('pagination', compact('products')); 
テンプレートで

@extends("template") 

@section("content") 
     @foreach($products as $product) 
     <div class="row"> 
     <div class="col-xs-6"> 
      <img src="{{$product->image}}" class = "img-responsive" alt = "{{$product->name}}"> 
     </div> 
     <div class="col-xs-6"> 
      <h2>{{$product->name}}</h2> 
      <p>{{$product->description}} </p> 
      <p>{{$product->value}} </p> 
      <a href="/details/{{$product->id}}" class="btn btn-default">Details</a> 
     </div> 
     </div> 
     @endforeach 
     <div class="pagination"> {{ $products->links() }} </div> 
    @stop 
関連する問題