サーバー側の処理

$users = Users::where('delete_flag', 0)
                ->orderBy('created_at, 'DESC')
               
->paginate(10);

上記の様に「paginate」を定義するだけでよい。

引数には1ページに表示する件数を定義。

取得結果をBladeテンプレート側に渡す。

 

クライアント側の処理

{{ $users->links() }}

Bladeテンプレート側は上記の定義だけでページング用のリンクが自動生成される。(page=n のパラメータが自動で付与される)

パラメータを更に追加したい場合は以下のようにする。

{{ $users->appends(['id' => $id])->links() }}

 

サーバー側のもう少し複雑なSQLの実行例

$results = DB::connection('mysql2')
                ->table('ret_t_tweet')
                ->join('ret_m_user', 'ret_t_tweet.user_id', '=', 'ret_m_user.id')
                ->where('ret_m_user.delete_flag', 0)
                ->where('ret_t_tweet.created_at_shaped', ">=", $today)
                ->select('ret_t_tweet.tweet_url as tweet_url'
                        , 'ret_t_tweet.text as text'
                        , 'ret_t_tweet.created_at_shaped as created_at_shaped'
                        , 'ret_m_user.id as user_id'
                        , 'ret_m_user.name as user_name'
                        )
                ->paginate(10);