🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

Q&A

解決済

1回答

2510閲覧

◯件中◯件取得を新しい順で取得する方法 Laravel

m2B

総合スコア20

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

データ構造

データ構造とは、データの集まりをコンピュータの中で効果的に扱うために、一定の形式に系統立てて格納する形式を指します。(配列/連想配列/木構造など)

ページネーション

Webアプリケーションにおいて、1ページに収まらないコンテンツを、各ページへのリンクを並べてアクセスしやすくする手法をページネーションと呼びます。

1グッド

1クリップ

投稿2019/11/26 12:02

データ取得に困っています。やりたいことが約40件のデータを最新順に取得して画面には5件取得したら、ページネーションで次のページを飛ばす処理をがやりたいです

しかし、私のは、40件の中の古い5件を取得して、その古い5件を最新順にしか取得できず、ページネーションをすると、日付がずれてしまい、うまくデータが取得できません。

もっと詳しく言うとデータは今年の1月から10月までのデータがあります。実現したいことは10月からの最新データが取得したくて現在私のは2月から1月の最新順にしかとれません.

index.blade.php $blogs = $tag->blogs()->action()->sort([ 'direction' => 'DESC', 'sort' => 'arrange' ])->take(5)->get(); <div class="visual_ forcms_block SecA"> <div class="body"> <div class="ArticleList"> <ul class="list"> {{-- {{dd($blogs)}} --}} @foreach($blogs->splice(1)->sortByDesc('release_date') as $blog) <li class="li"> <a href="/bridal_journal/{{$tag->slug}}/detail/{{$blog->id}}" style="height: 144px;"> <span class="date">{{$blog->release_date}}</span> <h3 class="hn">{{$blog->title}}</h3> <p class="link"><span>記事を読む</span></p></a> </li> @endforeach
blog.php public function scopeSort($query, $data = []) { foreach ($data as $key => $val) { //field filter if (in_array($key, $this->filterFields)) $query->where($key, $val); //field sort if ($key === 'sort') { if(!empty($data['direction'])){ if (in_array($data['sort'], $this->sortFields)) $query->orderBy($data['sort'], $data['direction']); } } } return $query;

補足でいいますと、最初の1件は古いデータを取得し、2件目以降は最新順に取得する処理となります。

試したことは
task(5)の中身40に変えると40件中の最新が出てくるのですが、40件もデータが出力されてしまい、うまくいきません。
またsortByDescを使うと、40件の中の古い5件を取得して、その古い5件を最新順にしか取得できずに困っています。

足りない情報がありましたら、ぜひまた、お知らせして下さい。ご回答の方をよろしくおねがいします。

退会済みユーザー👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

paginate メソッドを使います。

https://readouble.com/laravel/5.8/ja/pagination.html

◯件中◯件取得

については、参考ページの下にあるメソッドを使ってください。

投稿2019/11/26 16:29

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m2B

2019/11/27 05:43

ありがとうございます latest()を使ったらうまくいったので大丈夫でした
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.36%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問