[0005]Formファザードを利用してViewを作成
■インストール
この例では、Lalavelフレームワークのバージョンは5.5のため、Formファザードを利用するにはComposerでコンポーネントを追加する必要があります。
インストールするにはComposerが実行できる環境で接続し、composerコマンドを実行します。Composerを実行できる場所はご自身の環境に合わせて変更してください。composerの実行コマンドもご自身の環境によって違うと思います。この例の場合は、php composer.pharで繋いでおり、プロジェクト名は[sample]です。
コマンドプロンプト
#プロジェクトのTOPにいるか確認。違う場合はcdコマンドで移動
% pwd
/home/failibere/sample
#Composerが実行権限はプロジェクトの上の階層のため、../をつけて、プロジェクトTOPで実行
% php ../composer.phar require "laravelcollective/html":"^5.5.0"
#環境によってはphpなしの.pharなしでプロジェクトTOPで実行 ※環境によります
% composer require "laravelcollective/html":"^5.5.0"
#Lalavel5.7の場合はlaravelcollective/htmlも5.7を指定
% composer require "laravelcollective/html":"^5.7.0"
インストールが実行され、Formファザードが利用できるようになります。Lalavel5.5の場合はconfig/app.phpの手動変更は要りません。インストール完了と共に使えるようになります。
■Formファザード利用
Formファザード利用前のViewです。View名は[index]です。
index.blade.php
@extends('layouts.user')
@section('title')
Failibere
@endsection
@section('h2')
会員登録
@endsection
@section('h2_en')
registration
@endsection
@section('content')
<form action="./conf.html" method="get">
<div class="formArea01">
<p class="topText">会員登録は下記フォームからお願いいたします<br>
必須の項目は必ずご入力のうえ、「登録内容を確認」ボタンを押してください。</p>
<table class="form01">
<tbody>
<tr>
<th>担当者氏名<span class="required">必須</span></th>
<td>
<input type="text" name="name" class="medium">
</td>
</tr>
<tr>
<th>電話番号<span class="required">必須</span></th>
<td>
<input type="tel" name="tel" placeholder="012-345-6789" class="medium">
</td>
</tr>
</tbody>
</table>
<p class="btn01">
<button type="submit" name="searchSubmit" value="conf">登録内容を確認</button>
</p>
</div>
</form>
@endsection
@section('after_script')
<script src="/jquery.min.js"></script>
@endsection
Formファザード利用後のViewです。View名は[index]です。
index.blade.php
@extends('layouts.user')
@section('title')
Failibere
@endsection
@section('h2')
会員登録
@endsection
@section('h2_en')
registration
@endsection
@section('content')
{!! Form::open(['route'=>['user.tenant.confirm'],'method'=>'POST','id'=>'form','autocomplete'=>'off']) !!}
<div class="formArea01">
<p class="topText">会員登録は下記フォームからお願いいたします<br>
必須の項目は必ずご入力のうえ、「登録内容を確認」ボタンを押してください。</p>
<table class="form01">
<tbody>
<tr>
<th>担当者氏名<span class="required">必須</span></th>
<td>
{!! Form::text('name',null, ['class'=>'medium','id' => 'name','placeholder'=>'例)山田 太郎']) !!}
<p class="error displayNon" id="err_name"></p>
</td>
</tr>
<tr>
<th>電話番号<span class="required">必須</span></th>
<td>
{!! Form::text('tel',null, ['class'=>'medium','id' => 'tel','placeholder'=>'例)012-345-6789']) !!}
<p class="error displayNon" id="err_tel"></p>
</td>
</tr>
</tbody>
</table>
<p class="btn01">
{!! Form::button("登録内容を確認", ['value'=>'conf','id'=>'btn-submit']) !!}
</p>
</div>
{!! Form::close() !!}
@endsection
@section('after_script')
<script src="/jquery.min.js"></script>
@endsection
@section('script')
$("#btn-submit").click(function(){
//2重送信禁止
$("#btn-submit").prop("disabled", true);
//エラーCHECK後、エラー以外でSubmit実行
$('#form').submit();
});
@endsection
Formタグ、inputタグ、buttonタグがそれぞれFomrファザードにしています。
Formタグ{!! Form::open(['route'=>['user.tenant.confirm'],'method'=>'POST','id'=>'form','autocomplete'=>'off']) !!}
Formタグ閉じる{!! Form::close() !!}
inputタグ{!! Form::text('name',null, ['class'=>'medium','id' => 'name','placeholder'=>'例)山田 太郎']) !!}
buttonタグ{!! Form::button("登録内容を確認", ['value'=>'conf','id'=>'btn-submit']) !!}
Formファザードを利用してViewが作成できました!