Laravel 8.x更新で変わったこと(1)メンテナンス中のアクセス
Laravel 7.xから8.xに更新して変わったことを紹介していきます。最初は、メンテナンスモードに関して。
Laravel 7.xから8.xに更新して変わったことを紹介していきます。最初は、メンテナンスモードに関して。
FormRequestの話はいつも入力値のバリデーションが中心ですが、入力値とは関係ないアクセスのオーソリ(認可)もFormRequest内で設定可能です。その説明のための簡単な例として、登録したユーザーが自分の名前などのプロフィールを編集するするときに、最後の編集から24時間経過しないと次の変更ができない、というのはどうでしょう。
以前ご紹介したLaravel Excelの続きです。今回はExcelシートに画像を挿入する方法についてご紹介いたします。
「Laravel Collection(2) Collectionを返すメソッド」ではfilterメソッドを紹介しました。今度はfilterメソッドのように条件でCollectionを絞るwhereメソッドの話です。EloquentやSQL文で慣れているならwhereの方がわかりやすいかもしれません。
前回は1行1項目で3行の入力フォームの話でした。今回は難度をアップして1行3項目で3行の入力フォームの話です。
配列値の入力、つまり複数行に同じ入力項目を持つフォームの話です。お客様の登録などのフォームとは違って、バリデーションや画面でのエラーの表示など複雑な部分が多いです。しかし、コントローラで対応するより、FormRequestを使うとすっきりしたコードとなります。
以前に「ティンカーでリクエスト(Request)」で、ティンカーにおいてRequestのオブジェクトをシミュレートできることを紹介しました。あれから数年、ヘルパー関数のrequest()にもティンカーで値を追加できる技を取得しました。
集計用のコマンドを書いていてクエリビルダでfrom句にサブクエリを使いたいケースが発生しました。公式ドキュメントを見てもwhere句かjoin句でのサブクエリしか書かれていません。恐らくこうやるのでは?と、試してみたら期待通りに動いてしまい、結局、不安になってソースを確認したのでその共有です。
Collectionの中でとても好きなメソッドは、groupBy()です。Laravelが存在しなかった時代ではよくDBクエリから返ってくる1次元の配列をグループ化するため、汚いコードを書いて2次元の配列に変換していたものです。しかし、CollectionのgroupByがあるとコードがシンプルで綺麗に書けること書けること。
前回に続き、Collectionのsortメソッドについて解説していきます。今回は複数の項目を使ったソートについてです。