バリデーション (6) 他の属性の値を参照

日付の最大最小 after, before では、引数に値(日付)を与えるだけでなく、比較対象の属性の名前を与えることができます。
むしろ具体的な日付を引数にすることのほうがまれでしょう。

'date_start' => 'date|before:today',
'date_end'   => 'date|after:date_start',

このような使い方は、数値型の最大最小 min, max でも使用したいこともありますよね?
続き “バリデーション (6) 他の属性の値を参照”

バリデーション (5) 最大値と最小値

バリデーション言語ファイルを編集するときにお気づきと思いますが、Laravel標準バリデーション MaxMin は(他に SizeBetween も)調査対象の属性の型でその挙動を変えます。

'max' => [
    'numeric' => ':attributeの値が:maxを超えています',
    'file'    => ':attributeのサイズが:max kBを超えています',
    'string'  => ':attributeの文字数が:maxを超えています',
    'array'   => ':attributeの個数が:maxを超えています',
],
'min' => [
    'numeric' => ':attributeの値が:minに足りません',
    'file'    => ':attributeのサイズが:min kBに足りません',
    'string'  => ':attributeの文字数が:minに足りません',
    'array'   => ':attributeの個数が:minに足りません',
],

ここで問題となるのは、文字列型が入力した文字数カウントとの比較になることです。文字列比較の大小によるバリデーションは存在してません。
続き “バリデーション (5) 最大値と最小値”

バリデーション (4) DateとDatetime

Laravel 標準の Date バリデーションは、次のときに TRUE を返します。

OR 値がPHPの DateTime クラスのインスタンスである
AND 値が strtotime で理解できる文字列である
date_parse で年月日を返す
checkdate で年月日が妥当である

続き “バリデーション (4) DateとDatetime”

Laravel 5.3 AWS S3にファイルをアップロード

アップロードしたファイルの保存のメソッドがLaravelで5.3で少し変わりました。ここでそれらの情報更新とともに、AmazonのストレージサービスS3にファイルをアップロードする仕方を紹介します。
続き “Laravel 5.3 AWS S3にファイルをアップロード”

Laravel 5.3 コントローラのコンストラクタの重要な変更

Laravelのバージョン5.3がリリースされてから、かれこれ1ヶ月。使い始めてみました。

以前のバージョンからバージョン5.*への変更に比べれば、そう注意しなければならない変更はないのだけれど、とっても注意することありました。
続き “Laravel 5.3 コントローラのコンストラクタの重要な変更”

ちょっとしたパフォーマンスの改善

Laravelは非常にたくさんのファイルを起動時に読み込んでいるので、パフォーマンスの改善は以前から感心があります。最近、管理画面だけでrouteの数が300近いプログラムをインストールするにあたり、重たくなることを予想して、簡単にできる範囲でLaravelでのパフォーマンスの改善を調査してみました。
続き “ちょっとしたパフォーマンスの改善”

入力のブラックリストとホワイトリスト

このブログを開始してから、もうすでに1年以上。RawのSQLを書いてコードに埋め込む日常から、Eloquentを使用したORMのコードへと日常へと移行しています。Eloquentに関しても、ブログを書き始めた頃からは理解が深まり、洗練されたLaravelのコードを書けるようになってきたこの頃です。

1年前に書いた「マスアサインメントで一括取り込み」のトピックで、EloquentのModelのクラスの属性fillableguardedの話、1年の経験で学んだことを含めてここでもう一度説明します。
続き “入力のブラックリストとホワイトリスト”

バリデーション (3) 既存バリデーションの置き換え

Laravelには最初から利用可能なバリデーションルールが多数存在していますが、そのいくつかは実用にならなかったり、自分好みに挙動を変えたりしたいこともあります。

CustomValidator クラスは標準 Validator を継承していますので、これらを置き換えて上書きすることが可能です。

vendor/laravel/framework/src/Illuminate/Validation/Validator.php
続き “バリデーション (3) 既存バリデーションの置き換え”

バリデーション (2) CustomValidatorを追加

カスタムバリデーションのクラスを追加するには、サービスプロバイダーで次のようにクラスを登録します。

追加するクラスの名前や位置はどのようなものでもかまいせん。ここでは、ディレクトリパス app/Services に CustomVaidator.phpを作成し、AppServiceProvider に登録することにします。
続き “バリデーション (2) CustomValidatorを追加”

Top