ログイン後のリダイレクト先、その2
前回の記事ではログインボタンからログインした場合について解説しました。そちらのケースでは、RouteServiceProvider::HOMEを任意の値に変更する事でリダイレクト先を指定できました。今回はもう少し掘り下げ、ログインが必要なページにアクセスし強制的にログインページに飛ばされた場合について見てみましょう。
前回の記事ではログインボタンからログインした場合について解説しました。そちらのケースでは、RouteServiceProvider::HOMEを任意の値に変更する事でリダイレクト先を指定できました。今回はもう少し掘り下げ、ログインが必要なページにアクセスし強制的にログインページに飛ばされた場合について見てみましょう。
ECサイトなど会員登録機能を備えたサイトは大きくなると利便性やマーケティング的な観点からページ遷移にとても気を使うようになります。ログイン後のリダイレクト先も重視される導線の一つですね。先の案件でそれらを見直す機会があったので挙動や設定方法について備忘録を兼ねてまとめます。
Collectionでのmap()とtransform()のメソッドは似ているようで大きな違いがあります。
古くなってもう要らないDBレコードを削除することを、プルーン(prune)あるいはパージ(purge)などと言います。カスタムのArtisanのコマンドを書いて処理してもいいのだけれど、LaravelではこれがModelの中であるトレイトを使うだけで、組織的できてしまいます。
以前に「Laravelへの移行」と称してLaravelのスターターパッケージを2つ紹介しました。スターターパッケージとはすでにある程度デザインや機能が揃っていて、時間がかかる最初のプロジェクトの立ち上げをかなり減少してくれるものです。そからまだ2年も経過していないのですが、その間Bootstrapは4から5になるし、Tailwindが知られてくるようになりつつあり、フロントエンドのフレームワークの更新の時期となりました。今回は、それらを簡単にインストールできるLaraスターターの紹介です。
「ページネーションのデータを変える」の続きです。検索画面を用意して検索結果をページネーションします。
例えば、User::paginate(5)で返されるデータは、@foreachでループできるゆえにコレクションと思いきや、そうでありません。
先日に作成した生SQL文の実行クエリの機能を使用しています。重宝していますが、SQL文が複雑になってくると括弧が多くなってきたりして、わかりづらくなってきます。PHPのコードやHTMLソースと同じようなもので、SQL文の整形の機能が必要です。探したらまさにそのパッケージありました。
以前にEloquentの出力のチャンキングを紹介しました。処理中のメモリーの使用量を減らすためのチャンキングですが、実行速度が遅いということでそれを改善する対策もこしらえました。3年前以上のことです。しかし、そのためのメソッドがすでにEloquentのメソッドに存在することに最近気づきました。
phpでは配列のデータをループするならforeachを使います。LaravelのCollectionでもforeachを使ってループできます。しかし、Collectionならeach()を使いましょう。