Laravel 5.6で追加されたバリデーション
私が使用しているLaravelのバージョンは5.5、ついこの前にリリースされたと思いきや、なんと8/30/2017のことらしくもう1年半以上も経過。LTSということで2年間の長期サポートだからのんびりとしていたら、もうこの夏でサポートの期限切れです。キャッチアップ、ということで去年の2月にリリースされた5.6バージョン(しかし、もうサポートされていない)に追加されたバリデーションをチェックします。
私が使用しているLaravelのバージョンは5.5、ついこの前にリリースされたと思いきや、なんと8/30/2017のことらしくもう1年半以上も経過。LTSということで2年間の長期サポートだからのんびりとしていたら、もうこの夏でサポートの期限切れです。キャッチアップ、ということで去年の2月にリリースされた5.6バージョン(しかし、もうサポートされていない)に追加されたバリデーションをチェックします。
これも、前回と同様「実はそうでなかった」のトピックです。今度は、Eloquentのクエリーにおいてwhere()で条件を指定するとき。
日常、いつもの考えや習慣で仮定してしまい、「実はそうでなかった」と後で冷や汗なること多々あります。Laravelのプログラミングもそうです。その過ちを繰り返さないために、出会ったらブログに書いていくことにします。 今回はCollectionに関して、最近うっかりしたこと。
先日、tinkerに関して私が知らなかった機能を見つけました。tinkerを好んで日夜使用する私としては、これは作業効率が上がるわ、とわくわくする機能です。
以前に、Laravel 5.3 コントローラのコンストラクタの重要な変更として、コントローラで定義するメソッド間で共有するコードをコンストラクタに入れることが可能なことを説明しました。今度は同じコンストラクタ内で、コントローラのメソッドに渡される引数の取り出しかたを説明します。何を言っているかというと、まずは準備から。
ファイルのアップロードに関連したコードの開発で、LaravelのStorageのクラスを使用する機会がありました。そのクラスを使用しての出力処理で学んだことを今回は共有します。
正直言って、Laravelのmigration機能は私のLaravelのプロジェクトでは使用したことありません。よく理解していないこともあり、失敗してクライアントのデータベースを空にしてしまうことを考えると悪夢です。とか言ってコマンドラインでSQL文を実行する現状もリスクはそう変わりません。ということで、前回においてmigrationを使用する機会があったので、この際にmigrationの理解を深めたいです。
hasManyリレーションは、Eloquentのモデル間(つまり、DBのテーブル間)に1対多の関係を持たせるリレーションです。 今回は、factory()を使って、このhasManyのリレーションを持つDBテーブルにフェイクデータを作成してみます。
レコードのコピーという作業は結構起こることです。例えば、Eコーマースのサイトなら、サイズだけが違う商品は、説明などの他の属性はほとんど同じなので、わざわざ新規の商品の情報をすべて手入力というよりは、既存の商品をもとに編集する方がもちろん簡単です。 さて、このレコードのコピー作業、Eloquentではどうやるのでしょう?
またまた、前回に引き続きMySQLのレプリカの話です。しかし、今回はLaravelの設定も関係してきます。