Laravel で入力値チェックを実施します。
フォームの確認
viewファイルのform文を確認します。
MemoryMap/resources/views/insertInfo.blade.php
<form>
<p class="label">出かけた場所</p>
<input placeholder="例)東京スカイツリー" id="name" class="in" /><br>
<input type="button" onClick="attrLatLngFromAddress()" value="検索する" class="btn2">
<div id="map" class="map"></div>
<p class="label">緯度</p>
<input placeholder="緯度" id="ido" class="in" /><br>
<p class="label">経度</p>
<input placeholder="経度" id="keido" class="in" /><br>
<p class="label">コメント</p>
<input placeholder="コメントを記入して下さい" id="com" class="in" /><br>
<p class="label">出かけた日</p>
<input type="date" id="date" class="in" /><br>
<p class="label">写真</p>
<input type="file" name="file" id="file" class="in" /><br>
<input type="submit" value="送信" class="btn">
</form>
コントローラーでバリデート処理
コントローラーのメソッドに、以下のコードを追記します。
// 登録画面の入力値をDBに登録する
public function insertInfo(Request $request){
$this->validate($request,
['name' => 'required',
'ido' => 'required|numeric',
'keido' => 'required|numeric',
'date' => 'required',
],
['name.required' => ':attributeは必須です',
'ido.required' => ':attributeは必須です',
'ido.numeric' => ':attributeは数字を入力して下さい',
'keido.required' => ':attributeは必須です',
'keido.numeric' => ':attributeは数字を入力して下さい',
'date.required' => ':attributeは必須です',
],
['name' => '名前',
'ido' => '緯度',
'keido' => '経度',
'date' => '日付',
]);
$this->validate を実行しています。
第1引数に $request を指定します。
第2引数にバリデーションルールを指定します。
laravel ではあらかじめ多くのルールが定義されています。required は必須チェック、numeric は数値であるかのチェックです。
この他にも多くのバリデーションルールがあります。
第3引数にエラーメッセージを指定します。
第4引数に :attribute の内容を置き換えることができます。
バリデーションの設定は以上です。
画面のエラーメッセージの設定
コントローラーで設定したバリデーションチェックでエラーになった場合は、自動でformがある画面にエラーメッセージを返します。view側で受け取ることが出来ます。
@if (count($errors) > 0)
<div>
@foreach ($errors->all() as $error)
<p class="error_message">{{ $error }}</p>
@endforeach
</div>
@endif
上記の記載でエラー数の分、pタグを埋め込むことが可能です。
送信ボタンを押下するとコントローラーのバリデーションが動き、viewファイルにエラーが返ってきます。