一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - Laravel 中使用 Vue.js 實現基于 Ajax 的表單提交錯誤驗證操作

Laravel 中使用 Vue.js 實現基于 Ajax 的表單提交錯誤驗證操作

2021-06-01 16:55tuicool PHP教程

這篇文章主要介紹了Laravel 中使用 Vue.js 實現基于 Ajax 的表單提交錯誤驗證功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下

本教程基于laravel 5.4

開始之前首先準備好開發環境,我們假設你已經安裝好 laravel,至于 vue 的引入,請參考官方文檔。

做好上述準備工作后就可以開始我們的開發了,本教程中我們將演示文章發布頁面的表單 驗證 。

首先在 routes/web.php 中新增兩條路由規則:

?
1
2
route::get('post/create', 'postcontroller@create');
route::post('post/save', 'postcontroller@save');

然后在項目根目錄下運行 artisan 命令創建控制器 postcontroller :

?
1
php artisan make:controller postcontroller

在生成的控制器中新增兩個方法用于處理路由請求:

?
1
2
3
4
5
6
7
8
9
10
public function create() {
  return view('post.create');
}
public function save(request $request) {
  // 設置驗證規則
  $this->validate($request, [
     'title' => 'required',
     'body' => 'required'
   ]);
}

接下來就要創建響應視圖了,為了復用已有的樣式風格和頁面布局,我們先運行如下 artisan 命令:

?
1
php artisan make:auth

這樣我們就可以復用 laravel 自帶的認證功能頁面布局了,創建視圖文件 post/create.blade.php ,并編輯文件內容如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
@extends('layouts.app')
@section('content')
  <div class="container">
    <!--創建成功顯示消息-->
    <div class="alert alert-success" v-if="submitted">
      創建成功!
    </div>
    <!--頁面提交之后阻止刷新-->
    <form @submit.prevent="createpost" method="post">
      <legend>創建文章</legend>
      <!--如果title字段驗證失敗則添加.has-error-->
      <div class="form-group" :class="{'has-error':errors.title}">
        <label>文章標題</label>
        <input type="text" name="title" class="form-control" v-model="post.title" value="{{ old('title') }}">
        <!--如果驗證失敗通過formerror組件顯示錯誤信息-->
        <form-error v-if="errors.title" :errors="errors">
          @{{errors.title.join(',')}}
        </form-error>
      </div>
      <!--如果body字段驗證失敗則添加.has-error-->
      <div class="form-group" :class="{'has-error':errors.body}">
        <label>文章正文</label>
        <textarea name="body" class="form-control" rows="5" v-model="post.body">{{ old('body') }}</textarea>
        <!--如果驗證失敗通過formerror組件顯示錯誤信息-->
        <form-error v-if="errors.body" :errors="errors">
          @{{errors.body.join(',')}}
        </form-error>
      </div>
      <button type="submit" class="btn btn-primary">創建文章</button>
    </form>
  </div>
@endsection

這時訪問頁面頁面為空,因為我們還沒有定義 vue 相關的數據變量, layouts.app 布局視圖里引用了 app.js ,而這個 js 由 resources/assets/js/app.js 編譯而來,所以我們準備在這里定義 vue 相關的代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
var app = new vue({
  el: '#app',
  data: {
    post: {
      title: '',
      body: ''
    },
    errors: [],
    submitted: false
  },
  methods: {
    createpost: function () {
      var self = this;
      axios.post('/post/save', self.post).then(function(response) {
        // form submission successful, reset post data and set submitted to true
        self.post = {
          title: '',
          body: '',
        };
        // clear previous form errors
        self.errors = '';
        self.submitted = true;
      }).catch(function (error) {
        // form submission failed, pass form errors to errors array
        self.errors = error.response.data;
      });
    }
  }
});

我們在視圖文件里還看到了 form-error ,這其實是 vue 里面的子組件,我們可以在 resources/assets/js/components 目錄下創建這個新的組件文件,該目錄下提供了一個樣例 example.vue ,我們可以參照該樣例編寫一個新的 formerror.vue :

?
1
2
3
4
5
6
7
8
9
10
<template>
  <span class="help-block">
    <slot></slot>
  </span>
</template>
<script>
  export default {
    props: ['errors']
  }
</script>

這里我們將父組件中的數據 errors 傳遞到了子組件中以便在子組件中顯示錯誤信息。完成創建子組件后不要忘了在上述 resources/assets/js/app.js 中引入它:

?
1
vue.component('form-error', require('./components/formerror.vue'));

這樣,我們就完成了所有編碼工作,接下來運行以下命令重新編譯js:

?
1
npm run dev

當然在開發環境中,我們更傾向于使用 npm run watch ,該命令會監聽前端資源文件的更改然后重新編譯,以避免每次修改后手動編譯。

這樣,在瀏覽器中訪問 post/create 頁面,就可以正常展示了:

Laravel 中使用 Vue.js 實現基于 Ajax 的表單提交錯誤驗證操作

什么都不填寫,點擊創建按鈕,頁面就能展示錯誤提示信息了:

Laravel 中使用 Vue.js 實現基于 Ajax 的表單提交錯誤驗證操作

填寫相應字段之后再提交,則提示創建成功:

Laravel 中使用 Vue.js 實現基于 Ajax 的表單提交錯誤驗證操作

這樣,我們在 laravel 中完成了簡單的,基于 vue 實現的ajax 表單提交驗證功能,個人感覺在提升開發效率方面還是很顯著的。

原文鏈接:http://www.tuicool.com/articles/EJBJjar

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 99热人人| 性做久久久久免费观看 | 亚洲好骚综合 | 美女扒开胸罩露出奶了无遮挡免费 | 俄罗斯毛片免费大全 | 成年男女免费视频 | 色姑娘色综合 | 男人在线影院 | 福利视频一区二区牛牛 | 甜蜜惩罚小说 | 精品日本三级在线观看视频 | 91日本| 精品卡1卡2卡三卡免费视频 | 精品人伦一区二区三区潘金莲 | a级片在线观看免费 | 久久久久国产一级毛片高清片 | 久久电影精品久久99久久 | 国产日韩免费视频 | 日韩欧美中文字幕出 | 日韩免费毛片视频杨思敏 | 亚洲国产视频一区 | 久久精品热在线观看85 | 午夜理论片YY4399影院 | 短篇艳妇系列 | 国产成人精品午夜在线播放 | 美女污视频 | 我在厨房摸岳的乳HD在线观看 | 性xxxxⅹhd成人| 亚洲日韩欧美一区二区在线 | 男人捅女人漫画 | 成在线人免费 | 欧美大b| 娇妻与公陈峰姚瑶最新版 | 黑人干亚洲人 | 欧美折磨另类系列sm | 国内精品露脸在线视频播放 | 疯狂刺激的3p国产在线 | 91大神第九部红酒气质女 | 免费观看无人区完整版 | 无人区乱码区1卡2卡三卡在线 | 俄罗斯freeⅹ性欧美 |