Laravel5.5を使っています。
Viewの中で複数のFormを利用しようとしています。
名前のInputがあった場合に変更するFormと削除するFormを分けています。
削除のFormを実行しようとすると名前に入力が無いとWebブラウザ上でinputタグの周りに赤くなってエラーになるのですが、このエラーチェックをFormごとに分ける方法をご教授ください。
よろしくお願いします。
view
1<form id="update-form" class="form-horizontal" method="POST" action="{{ route('user.update') }}"> 2 {{ csrf_field() }} 3 4 <div class="form-group{{ $errors->has('name') ? ' has-error' : '' }}"> 5 <label for="name" class="col-md-4 control-label">名前</label> 6 <div class="col-md-6"> 7 <input id="name" type="text" class="form-control" name="name" value="{{ $name }}" required autofocus> 8 @if ($errors->has('name')) 9 <span class="help-block"> 10 <strong>{{ $errors->first('name') }}</strong> 11 </span> 12 @endif 13 </div> 14 </div> 15 <div class="form-group"> 16 <div class="col-md-offset-4 col-md-6"> 17 <button type="submit" class="btn btn-primary">設定</button> 18 </div> 19 </div> 20</form> 21<div class="col-md-offset-4 col-md-6 text-right"> 22 <button type='button' class='btn btn-danger' onClick='delChk()' >削除</button> 23</div> 24<form id="del-form" action="{{ route('user.delete') }}" method="GET" style="display: none;"> 25 {{ csrf_field() }} 26</form> 27<script type="text/javascript"> 28<!-- 29function delChk(){ 30 if(window.confirm('本当に削除しますか?')){ 31 document.getElementById('del-form').submit(); 32 } 33 return false; 34} 35// --> 36</script>
エラーチェックとは?
フロント側のバリデーションを指しているのか
バックエンド側のバリデーションの事を指しているのかどちらですか
ControllerのUserを処理するファイルには何も記載していません。Chromeの検証でNetworkで見ると、Formが両方とも実行されている(route('user.update')、route('user.delete')にアクセスしている)ように見えます。
Controllerに記載していないので、フロント側になるのでしょうか?サーバでエラーチェックしているように見えるのでバックエンド側になるのでしょうか?
あまり理解できていませんが、上記のような状況です。
すみません、Controllerで記載がありました。routeで以下の関数を呼び出しているのですが、
function user_update(UpdateRequest $request) {
(省略)
}
UpdateRequestを以下で定義していました。
app/Http/Requests/UpdateRequest.php
deleteも同じRequestを指定しているので変更すれば直りそうです。
function user_update(UpdateRequest $request) {
(省略)
}
【Request形式を変更】
function user_delete(Request $request) {
(省略)
}
回答1件
あなたの回答
tips
プレビュー