久久久久在线观看_又色又爽又黄的免费视频播放_一区中文字幕_日韩电影在线播放

今日頭條 焦點資訊 營銷之道 企業報道 淘寶運營 網站建設 軟件開發 400電話
  當前位置: 首頁 » 資訊 » 軟件開發 » 正文

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

放大字體  縮小字體 發布日期:2018-02-10  來源:企業800網  作者:新格網  瀏覽次數:50  【去百度看看】
本教程基于Laravel 5.4

開始之前首先準備好開發環境,我們假設你已經安裝好 Laravel,至于 Vue 的引入,請參考官方文檔。做好上述準備工作后就可以開始我們的開發了,本教程中我們將演示文章發布頁面的表單 驗證 。本文主要和大家介紹了Laravel 中使用 Vue.js 實現基于 Ajax 的表單提交錯誤驗證功能,非常不錯,具有參考借鑒價值,需要的朋友可以參考下,希望能幫助到大家。

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


Route::get('post/create', 'PostController@create');
Route::post('post/save', 'PostController@save');

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


php artisan make:controller PostController

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


public function create() {
  return view('post.create');
}
public function save(Request $request) {
  // 設置驗證規則
  $this->validate($request, [
     'title' => 'required',
     'body' => 'required'
   ]);
}

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


php artisan make:auth

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


@extends('layouts.app')
@section('content')
  <p class="container">
    <!--創建成功顯示消息-->
    <p class="alert alert-success" v-if="submitted">
      創建成功!
    </p>
    <!--頁面提交之后阻止刷新-->
    <form @submit.prevent="createPost" method="POST">
      <legend>創建文章</legend>
      <!--如果title字段驗證失敗則添加.has-error-->
      <p 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>
      </p>
      <!--如果body字段驗證失敗則添加.has-error-->
      <p 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>
      </p>
      <button type="submit" class="btn btn-primary">創建文章</button>
    </form>
  </p>
@endsection

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


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 :


<template>
  <span class="help-block">
    <slot></slot>
  </span>
</template>
<script>
  export default {
    props: ['errors']
  }
</script>

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


Vue.component('form-error', require('./components/FormError.vue'));

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


npm run dev

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

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

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

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

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

相關推薦:

TP框架里面的ajax表單驗證方法分享

Ajax表單異步上傳文件實例代碼詳解

Laravel 中使用 Vue.js 實現Ajax表單驗證實例

以上就是Laravel中使用Vue.js實現Ajax表單提交錯誤驗證操作的詳細內容,更多請關注php中文網其它相關文章!

 
 
[ 資訊搜索 ]  [ 加入收藏 ]  [ 告訴好友 ]  [ 打印本文 ]  [ 違規舉報 ]  [ 關閉窗口 ]

 
0條 [查看全部]  相關評論

 
網站首頁 | 關于我們 | 聯系方式 | 使用協議 | 版權隱私 | 網站地圖 | 排名推廣 | 廣告服務 | 積分換禮 | 網站留言 | RSS訂閱 | 吉ICP備11001726號-6
企業800網 · 提供技術支持