カタログクリップ内容をスキップカタログクリップ家電、育児、コンピューターのこと。5.5で行う方法を順を追って紹介しています。この記事は、次の記事に続く2つ目の記事です。[その1]前回次の作業を行い、作成したところまでの動作をhttpサーバを起動して確認しました。次の作業へ進みましょう。空のルートの中身を作成していきます。’/’にアクセスされた場合に、全タスクをリスト表示するようにHTMLテンプレートを作成します。そのテンプレートには新しいタスクを追加するフォームも含めることにします。LaravelのHTMLテンプレートは、resources/views/以下に置きます。viewヘルパを使用することで、viewsディレクトリに置かれたHTMLテンプレートを表示することができます。view('tasks');});この場合は、resources/views/tasks.blade.phpが読み込まれます。ビューのレイアウトLaravelでは、Bladeというテンプレートエンジンが用意されています。他のPHPテンプレートエンジンと異なり、ビューの中にphpを直接記述します。ビューファイルの拡張子が.blade.phpの場合に、Bladeテンプレートエンジンが使用されます。レイアウトの共通部分を、resources/views/layouts/app.blade.phpに用意しましょう。ナビバーを共通部分とすることにします。次のように、layouts/app.blade.phpを作成します。</body></html>この例ではcssフレームワークとしてbootstrapを使用しています。Bulmaなどの他のCSSを使用しても構いません。ここで、@yield(‘content’)は、Bladeのディレクティブです。この部分に、子ページの内容が挿入されます。次に、子ページとして全タスクをリスト表示するtasks.blade.phpを次のように作成します。layouts/app.blade.phpが呼ばれます。tasks.blade.phpの@section(‘content’)から、@endsectionまでの内容が挿入されます。挿入されて表示されることになります。@includeディレクティブは、他のbladeビューを取り込みます。ここでは@include(‘common.errors’)を使用しています。これにより、入力値エラー表示をcommon.errorsに共通化します。common.errorsは後ほど作成します。}}で囲まれたデータは、phpのhtmlentities関数を通して表示されます。その他Bladeのディレクティブについては、こちらのページを参考にしてください。現状では、タスクの追加ボタンを押すと、空の/taskページに飛ばされるだけで、タスクの追加処理が行われません。ここで、タスクをデータベースに追加する/taskルートのコードを追加しましょう。タスク名(name)のフィールドを一つ持つフォームを作成します。nameの条件は、入力が必須で、255文字以下であることとします。条件を満たさない場合は、’/’にリダイレクトし、エラー内容をセッションにフラッシュデータとして保存します。フラッシュデータとは、次のリクエストの処理が終わった後にlaravelによって消されるセッション情報です。次のリクエスト処理まで持ち越したい情報を保存したいときに使います。routes/web.phpの/taskルートに次のようにコードを追加します。$requestとなっています。このように記述するとサービスプロバイダによって、$requestに現在のHTTPリクエストインスタンスが代入されます。Requestクラスの解説はこちらのページです。Validator::makeメソッドの第1引数は、バリデーションを行うデータです。第2引数はそのデータに適用するバリデーションルールです。入力値が無効か確認しています。無効であった場合は、エラーを保存して、’/’ルートを返します。->withErrors($validator)で、$validatorインスタンスのエラーをセッションに保存します。すると、全てのビューから$errors変数としてアクセスできるようになります。->withInput()は、全ての入力内容をセッションに保存します。バリデーションについてはこちらのページの「バリデータの生成」項を参考にしてください。タスクの作成部は、ここではTODOとして残しておきます。エラー表示エラーを表示するためにtask.blade.phpに@include(‘common.errors’)ディレクティブを記述していました。resources/views/common/errors.blade.phpに、次のように記述しましょう。</div>@endif@で始まる行は、Bladeのディレクティブです。$errorsが一つ以上存在する場合に、エラーをリスト表示します。ここまでのまとめここまでで次の作業を行いました。‘/’ルートで表示されるページテンプレートを指定(tasks.blade.php)。ページテンプレートを作成。タスク入力フォームを追加。タスク追加ルート/taskの作成。入力値の検査とエラー処理を追加。