国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

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

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

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

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

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

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

本教程基于laravel 5.4

開始之前首先準備好開發(fā)環(huán)境,我們假設(shè)你已經(jīng)安裝好 laravel,至于 vue 的引入,請參考官方文檔。

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

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

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

然后在項目根目錄下運行 artisan 命令創(chuàng)建控制器 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) {
  // 設(shè)置驗證規(guī)則
  $this->validate($request, [
     'title' => 'required',
     'body' => 'required'
   ]);
}

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

?
1
php artisan make:auth

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

?
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">
    <!--創(chuàng)建成功顯示消息-->
    <div class="alert alert-success" v-if="submitted">
      創(chuàng)建成功!
    </div>
    <!--頁面提交之后阻止刷新-->
    <form @submit.prevent="createpost" method="post">
      <legend>創(chuàng)建文章</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">創(chuàng)建文章</button>
    </form>
  </div>
@endsection

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

?
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 目錄下創(chuàng)建這個新的組件文件,該目錄下提供了一個樣例 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>

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

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

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

?
1
npm run dev

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

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

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

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

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

填寫相應字段之后再提交,則提示創(chuàng)建成功:

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

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

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

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 精品久久久久久久久久久 | 欧美日韩在线免费 | 黄毛片| 国产精品国产精品国产专区不卡 | 国产中文字幕在线看 | 手机亚洲第一页 | 中文字幕高清 | 一级久久 | 精品久久久久久亚洲精品 | 成人羞羞视频在线观看免费 | 久久久精品 | 久久精品一区 | 欧美日韩在线不卡 | 亚洲精品国产一区 | 久久久久久久久成人 | 精品久久久久久久久久久久 | 午夜高清视频 | 国产毛片毛片 | 久久亚洲精品中文字幕 | 亚洲伊人成人 | 明里在线观看 | 五月激情综合网 | 久久免费福利视频 | 欧美日韩一区精品 | 久久久久香蕉视频 | 欧美成人免费网站 | 久久精品一区二区三区不卡牛牛 | 日韩在线播放一区二区三区 | 亚洲专区国产精品 | 免费国产一区 | 久操成人| 国产黄色片一级 | 国产一区二区三区久久久久久久久 | 欧美在线视频网站 | 欧美一级欧美三级在线观看 | 永久av| 精品护士一区二区三区 | 精品在线一区二区三区 | 国产精品一区二区不卡 | 国产精品69久久久久水密桃 | 国产欧美日韩精品一区 |