[PHP][Laravel][vue.js][Javascript] vueで空白項目を登録する際にバリデーションでnullableを設定しても動作しない対応
バージョン
Laravel 5.8
Vue.js 2.6.10
概要
たとえばURL登録フォームのバリデーション設定が以下の場合
'url' => 'max:100|nullable|active_url',
空白の場合はバリデーションで引っかからないはずだが
vueから登録しようとするとactive_url(urlバリデーションルールも同様)に引っかかってしまう。
原因はvue側で"null"という文字列がLaravelに送られるため。
そのためvue側で""(空白)に置き換える必要がある。
コード
◾️HogeComponent.vue
<script> 〜〜略〜〜 params.append("url", (typeof self.url === "undefined" || self.url === null) ? "" : self.url); // API通信 self.$http.post("/api/ajax/hoge", params) </script>
self.url === null だけでも良いが念の為undefinedもチェックしておく。
Nuxt.jsビギナーズガイド―Vue.js ベースのフレームワークによるシングルページアプリケーション開発
- 作者:花谷 拓磨
- 発売日: 2018/10/17
- メディア: 単行本(ソフトカバー)