際際滷
Submit Search
Laravel の paginate は匯悶採をやっているのか
?
3 likes
?
15,780 views
Shohei Okada
Follow
2018-06-27 _岸の仝及127指 PHP茶氏@|奨々におけるLTY創です https://phpstudy.doorkeeper.jp/events/76011
Read less
Read more
1 of 34
Download now
Download to read offline
More Related Content
Laravel の paginate は匯悶採をやっているのか
1.
Laravel の paginate
は 匯悶採をやっているのか 及127指 PHP茶氏|奨
2.
弥 屎峠┐かだ しょうへい@okashoi ?
幄塀氏芙ウィルゲ`ト 2015定仟怱秘芙 ? _k片 ソリュ`ションユニット 侭奉 ? PHP, Laravel, Vue.js 2 徭失B初 際際滷s:
3.
Laravel の
paginate は採をやっているのか ? タイトル宥り フレ`ムワ`クのソ`スコ`ドの弖うときの房深プロセス 3 このスライドでつたえたい
4.
https://laravel.com/docs/5.6/pagination
5.
// Controller にて $users
= App?User::paginate(15); {{-- blade template にて --}} <div class="container"> @foreach ($users as $user) {{ $user->name }} @endforeach </div> {{ $users->links() }}
6.
// Controller にて $users
= App?User::paginate(15); {{-- blade template にて --}} <div class="container"> @foreach ($users as $user) {{ $user->name }} @endforeach </div> {{ $users->links() }}
8.
routing を乾らずに ペ`ジネ`ション喘の
URL (?page=x) が伏まれる ? 拱屬 routing が伏撹される だけでいい湖じにペ`ジネ`ションのリンクが伏まれる 8 なんか欒屬い´´ $users->links()
9.
´´
10.
// Controller にて $users
= App?User::paginate(15); {{-- blade template にて --}} <div class="container"> @foreach ($users as $user) {{ $user->name }} @endforeach </div> {{ $users->links() }}
11.
// Controller にて $users
= App?User::paginate(15); {{-- blade template にて --}} <div class="container"> @foreach ($users as $user) {{ $user->name }} @endforeach </div> {{ $users->links() }}
12.
? のり ? ペ`ジネ`ションに駅勣な秤鵑魍屬辰討い ?
もこのクラスに伏えている 12 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users = App?User::paginate(15); ?Illuminate?Database?Query?Builder::paginate() links()
13.
? のり ? ペ`ジネ`ションに駅勣な秤鵑魍屬辰討い ?
もこのクラスに伏えている 13 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users = App?User::paginate(15); ?Illuminate?Database?Query?Builder::paginate() links()
14.
14 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users
= App?User::paginate(15);
15.
これらの秤鵑ら、ペ`ジネ`ション何蛍の HTML を伏撹することはできる┐錣る
16.
16 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users
= App?User::paginate(15);
17.
17 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users
= App?User::paginate(15); DBから函誼できる ┐錣る
18.
18 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users
= App?User::paginate(15); DBから函誼できる ┐錣る 哈方でもらう ┐錣る
19.
19 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users
= App?User::paginate(15); DBから函誼できる ┐錣る 哈方でもらう ┐錣る 麻竃できる ┐錣る
20.
20 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users
= App?User::paginate(15); DBから函誼できる ┐錣る 哈方でもらう ┐錣る 麻竃できる ┐錣る 殖殖┐錣らない
21.
ここからは娠と鳴遒蕕 ┐覆里任舛腓辰費lけ怎
22.
? のり ? ペ`ジネ`ションに駅勣な秤鵑魍屬辰討い ?
もこのクラスに伏えている 22 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users = App?User::paginate(15); ?Illuminate?Database?Query?Builder::paginate() links()
23.
23 ?Illuminate?Database?Query?Builder::paginate() public function paginate($perPage
= 15, $columns = ['*'], $pageName = 'page', $page = null) { $page = $page ?: Paginator::resolveCurrentPage($pageName); $total = $this->getCountForPagination($columns); $results = $total ? $this->forPage($page, $perPage)->get($columns) : collect(); return $this->paginator($results, $total, $perPage, $page, [ 'path' => Paginator::resolveCurrentPath(), 'pageName' => $pageName, ]); }
24.
24 ?Illuminate?Database?Query?Builder::paginate() public function paginate($perPage
= 15, $columns = ['*'], $pageName = 'page', $page = null) { $page = $page ?: Paginator::resolveCurrentPage($pageName); $total = $this->getCountForPagination($columns); $results = $total ? $this->forPage($page, $perPage)->get($columns) : collect(); return $this->paginator($results, $total, $perPage, $page, [ 'path' => Paginator::resolveCurrentPath(), 'pageName' => $pageName, ]); } currentPage を盾Qしてそう
25.
25 ?Illuminate?Pagination?AbstractPaginator public static function
resolveCurrentPage($pageName = 'page', $default = 1) { if (isset(static::$currentPageResolver)) { return call_user_func(static::$currentPageResolver, $pageName); } return $default; } /** * Set the current page resolver callback. * * @param ?Closure $resolver * @return void */ public static function currentPageResolver(Closure $resolver) { static::$currentPageResolver = $resolver; }
26.
26 ?Illuminate?Pagination?AbstractPaginator public static function
resolveCurrentPage($pageName = 'page', $default = 1) { if (isset(static::$currentPageResolver)) { return call_user_func(static::$currentPageResolver, $pageName); } return $default; } /** * Set the current page resolver callback. * * @param ?Closure $resolver * @return void */ public static function currentPageResolver(Closure $resolver) { static::$currentPageResolver = $resolver; } $currentPageResolver を柵び竃している $currentPageResolver は´´
27.
27 ?Illuminate?Pagination?AbstractPaginator public static function
resolveCurrentPage($pageName = 'page', $default = 1) { if (isset(static::$currentPageResolver)) { return call_user_func(static::$currentPageResolver, $pageName); } return $default; } /** * Set the current page resolver callback. * * @param ?Closure $resolver * @return void */ public static function currentPageResolver(Closure $resolver) { static::$currentPageResolver = $resolver; } ここでセットされてる
28.
輝にクラス協xをさかのぼって佩くと、ここで佩き峭まる の柵び竃しw侭がつからない ★ Laravel
には ServiceProvider という碧Mみがある ? アプリケ`ションの光侭兜豚I尖が佩われる侭 28 佩き峭まり Paginator::currentPageResolver()
29.
29 ?Illuminate?Pagination?PaginationServiceProvider public function register() { Paginator::viewFactoryResolver(function
() { return $this->app['view']; }); Paginator::currentPathResolver(function () { return $this->app['request']->url(); }); Paginator::currentPageResolver(function ($pageName = 'page') { $page = $this->app['request']->input($pageName); if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) { return (int) $page; } return 1; }); }
30.
30 ?Illuminate?Pagination?PaginationServiceProvider public function register() { Paginator::viewFactoryResolver(function
() { return $this->app['view']; }); Paginator::currentPathResolver(function () { return $this->app['request']->url(); }); Paginator::currentPageResolver(function ($pageName = 'page') { $page = $this->app['request']->input($pageName); if (filter_var($page, FILTER_VALIDATE_INT) !== false && (int) $page >= 1) { return (int) $page; } return 1; }); } リクエストパラメ`タ ${pageName} を函誼
31.
31 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users
= App?User::paginate(15); DBから函誼できる ┐錣る 哈方でもらう ┐錣る 麻竃できる ┐錣る 殖殖┐錣らない
32.
32 ?Illuminate?Pagination?LengthAwarePaginator // Controller にて $users
= App?User::paginate(15); DBから函誼できる ┐錣る 哈方でもらう ┐錣る 麻竃できる ┐錣る わかった
34.
? Laravel の
paginate は匯アクロバティックだが 吭翌と険恬喘がoい侘になっていた ? Laravel のコ`ドを弖って佩って abstract class や interface で佩き峭まったら それっぽい ServiceProvider を冥すと措い ? こういうの{砲垢襪里 PhpStorm が宴旋。Go To Declaration ? 勣 larvae-ide-helper https://github.com/barryvdh/laravel-ide-helper 34 まとめ
Download