【Under the hood】エラーバッグの構造
普段、エラーバッグからエラーを取得する際、$errors->first('name')などとしますが、この時裏ではどんな処理が行われているかご存知でしょうか?私自身、全然意識せずに使っていましたが、調べてみると実はdefaultという名前付きエラーバッグからエラーを取得している事が分かりました。
普段、エラーバッグからエラーを取得する際、$errors->first('name')などとしますが、この時裏ではどんな処理が行われているかご存知でしょうか?私自身、全然意識せずに使っていましたが、調べてみると実はdefaultという名前付きエラーバッグからエラーを取得している事が分かりました。
1つのページに複数のフォームが存在する場合、エラーの管理が煩雑になりがちです。 そんな時は名前付きエラーバッグを使ってフォーム毎にエラーを分けると管理しやすいです。
バリデーションの話は尽きないです。過去にもいくつか取り上げました。今回もちょっと頭をひねった話です。
以前の投稿「FormRequestで入力値を補正」でチェックボックスがオフのときの値の補正に関して説明しました。今度はFormRequestを使わないときの補正の仕方です。
前回は1行1項目で3行の入力フォームの話でした。今回は難度をアップして1行3項目で3行の入力フォームの話です。
配列値の入力、つまり複数行に同じ入力項目を持つフォームの話です。お客様の登録などのフォームとは違って、バリデーションや画面でのエラーの表示など複雑な部分が多いです。しかし、コントローラで対応するより、FormRequestを使うとすっきりしたコードとなります。
入力画面のバリデーションでちょいと頭をひねったケースです。2つの入力項目があり、どちらかが必須なのだけれど両方の入力は禁止という場合です。まず、具体的な例を見てみましょう。
今回は、またしても新規のLaravelのバージョン対しての私のキャッチアップの話です。もちろん、存在は知っていたのですが、最近まで使用する機会がありませんでした。ブレードで使われる@errorの話なのですが、調べたら登場したのはなんとLaravelバージョン5.8、現在のバージョンが8.xなので遠い昔のように思えます。しかし、5.8がリリースされたのはつい去年のことです。Laravelのバージョン形態が変わってから、どんどん更新が早まっていくように感じられます。
FormRequestで入力値を補正を以前紹介しましたが、今度はちょっと違う補正の紹介です。何が違うというと、今度はバリデーションの後でなくバリデーション前に入力値を変えます。入力項目とDBに保存する項目の形態が違うときにとても便利です。とりあえず、それが必要なケースの説明から。
世界中大変なことになっていますね。私が住んでいるところも、子供たちの学校は4月いっぱい休み、レストランやバーはテイクアウトのみとなっています。それらのビジネスに携わっている人たちは本当に困っていると思います。逆に、私を含めてこのブログを読んでくれる人たちは、インターネットのおかげで忙しくなっているくらいと思います。その有難さを胸に、日々精進と行きましょう! 今回は、またもやFormRequestの話で、1つのコントローラーにおいてあるいは複数のコントローラでどうバリデーションのルールを共有の仕方を考えてみます。