バリデーションの実例:他の項目の値を引数とする条件

今回は、引数にフォームの他の項目名を指定するバリデーションルールです。 confirmed different in_array same 個人的には、最初のconfirmed以外は使用したことないですね。in_arrayでは引数として指定する項目が配列であることを示すために、field2.*のように指定する必要あることに注意してください。 さて、他の項目の値を引数としては使わないのですが、入力値が配列のときに、それらの値に重複がないというチェックもここに掲載します。他に入れるところがないというのですが、本当は。配列という投稿を作成してもよいかもしれませんね。 distinct

バリデーションの実例:定数値を引数とする条件

入力値のデータタイプの判定のバリデーションから、今度は条件で判定するバリデーションに移っていきます。条件で判定するバリデーションには、その条件で使用される引数の指定が必要となります。引数には、 文字列や数字の定数値(例:min, maxなど) 同じフォームの他の項目名(例:same、differentなど) DBの情報(例:exists、unique) が指定されます。 今回は、最初の引数タイプ、定数値を引数とする条件の以下のバリデーションのテストを掲載します。 digits digits_between size between min max in not_in regex また、前回紹介した日付のバリデーションの以下も定数値を引数とする条件に含まれますね。 date_format, date_equals, after, after_or_equal, before, before_or_equal 今回の注意点は、size, between, min, maxにおいて、入力値を文字列でなく数値として扱うには、numericあるいはintegerのルールの指定が必要なことです。例えば、integer|between:3,10なルールになります。

バリデーションの実例:日付

今回は日付関連のバリデーションを掲載します。 date date_format date_equals after after_or_equal before before_or_equal date以外、今回は皆ルールの指定にはパラメータが必要となります。

バリデーションの実例:特殊データタイプ

特殊データタイプとしてのチェックとして以下のテストを掲載します。以下からのリンクだけでなく、この投稿にも掲載してあります。 alpha alpha_dash alpha_num accepted active_url email ip timezone url

バリデーションの実例

新しい連載を始めます。 Laravelは、出来合いのヘルパーやバリデーションがあり便利です。もの凄くたくさんあり覚えらないというほどの数ではないですが、すべてを頭の中で保持しておくのも大変です。また、こういう使い方では結果はどうなるのとか、実際に実行してみないとわからないことあります。

ティンカーでリクエスト(Request)

前回に引き続いてリクエストの話です。ブラウザがないとリクエスト(Request)のオブジェクトが作成できない、とは限りません。Laravelならコマンドラインで作成できます。どうやって?

リクエスト(Request)のあれこれ

Laravelで、リクエスト(Request)というのは、ブラウザを通してユーザーから送られる情報をすべて含んでいるオブジェクトのことです。例えば、会員登録のフォームなら、画面でユーザーが入力したEメール、パスワード、名前、住所だけでなく、何のブラウザを使用したか(User Agent)、どのIPから送られたか、どのURLからアクセスしたかなど、また、会員ログイン後の画面なら、会員認証において保存されたクッキーもブラウザを介して、リクエストに含まれます。 リクエストの使用 リクエストの代表的な使用は、以下のようにコントローラのメソッドのパラメータです。以下は、Laravelのドキュメントからのコードから引用からですが、会員登録画面でのPOSTされたときにコールされるstoreメソッドです。 UserController.php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { /** * 新規ユーザーの作成 * * @param Request $request * @return Response */ public function store(Request $request) { $name = $request->input('name'); // } } また、Httpのミドルウェアでも、handle()のパラメータとして利用されています。 RedirectIfAuthenticated.php use Closure; use Illuminate\Support\Facades\Auth; class RedirectIfAuthenticated { /** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @param string|null $guard * @return mixed */ public function handle($request, Closure $next, $guard = null) { if (Auth::guard($guard)->check()) { return redirect('/home'); } return $next($request); } } ミドルウェアと言えば、コントローラのコンストラクタでも$requestにアクセスが可能です。

Laravelの開発に必須な私のツール

Laravelをウェブアプリの開発の使い始めてから、もうかれこれ5年になろうとしています。Laravelのバージョンも4から5になりさらに進化し続けています。こう経験が長くなると、使用する開発ツールも年々増えてきます。その中で、もうこれがないと開発できない!というものもいくつかあります。