Heim Web-Frontend js-Tutorial Implementierung von Ajax-Formularvalidierungsbeispielen mit Vue.js in Laravel

Implementierung von Ajax-Formularvalidierungsbeispielen mit Vue.js in Laravel

May 14, 2018 pm 03:12 PM
javascript laravel vue.js

In diesem Artikel wird hauptsächlich die Verwendung von Vue.js in Laravel zur Implementierung der Ajax-basierten Funktion zur Überprüfung von Formularübermittlungsfehlern vorgestellt. Es ist sehr gut und hat Referenzwert

Basierend auf Laravel 5.4

Bevor Sie beginnen, gehen wir davon aus, dass Sie Laravel installiert haben. Informationen zur Einführung von Vue finden Sie in der offiziellen Dokumentation.

Nach Abschluss der oben genannten

Vorbereitungen

können wir mit der Entwicklung beginnen. In diesem Tutorial demonstrieren wir die Formularüberprüfung der Seite Artikelveröffentlichung. Fügen Sie zunächst zwei Routing-Regeln in „routes/web.php“ hinzu:

Führen Sie dann den Artisan-Befehl im Projektstammverzeichnis aus, um den
Route::get('post/create', 'PostController@create');
Route::post('post/save', 'PostController@save');
Nach dem Login kopieren
Controller

PostController zu erstellen:

Fügen Sie im generierten Controller zwei neue Methoden hinzu, um Routing-Anfragen zu verarbeiten:
php artisan make:controller PostController
Nach dem Login kopieren

Der nächste Schritt besteht darin, eine Antwortansicht zu erstellen, um den vorhandenen Stil und < wiederzuverwenden 🎜>Seitenlayout
public function create() {
  return view(&#39;post.create&#39;);
}
public function save(Request $request) {
  // 设置验证规则
  $this->validate($request, [
     &#39;title&#39; => &#39;required&#39;,
     &#39;body&#39; => &#39;required&#39;
   ]);
}
Nach dem Login kopieren
, führen wir zunächst den folgenden Artisan-Befehl aus:

Damit wir das mit Laravel gelieferte Seitenlayout der Authentifizierungsfunktion wiederverwenden und die Ansichtsdatei post/create .blade erstellen können .php und bearbeiten Sie den Dateiinhalt wie folgt:

php artisan make:auth
Nach dem Login kopieren

Zu diesem Zeitpunkt ist die Seite „Zugriffsseite“ leer, da wir keine Vue-bezogenen Datenvariablen definiert haben und die Layoutansicht „layouts.app“ auf die App verweist .js und dieser js wird aus resources/assets/js/app.js kompiliert, daher werden wir hier Vue-bezogenen Code definieren:

@extends(&#39;layouts.app&#39;)
@section(&#39;content&#39;)
  <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="{&#39;has-error&#39;:errors.title}">
        <label>文章标题</label>
        <input type="text" name="title" class="form-control" v-model="post.title" value="{{ old(&#39;title&#39;) }}">
        <!--如果验证失败通过FormError组件显示错误信息-->
        <form-error v-if="errors.title" :errors="errors">
          @{{errors.title.join(&#39;,&#39;)}}
        </form-error>
      </p>
      <!--如果body字段验证失败则添加.has-error-->
      <p class="form-group" :class="{&#39;has-error&#39;:errors.body}">
        <label>文章正文</label>
        <textarea name="body" class="form-control" rows="5" v-model="post.body">{{ old(&#39;body&#39;) }}</textarea>
        <!--如果验证失败通过FormError组件显示错误信息-->
        <form-error v-if="errors.body" :errors="errors">
          @{{errors.body.join(&#39;,&#39;)}}
        </form-error>
      </p>
      <button type="submit" class="btn btn-primary">创建文章</button>
    </form>
  </p>
@endsection
Nach dem Login kopieren

Wir haben auch einen Formfehler in der Ansichtsdatei gesehen , Dies ist eigentlich eine Unterkomponente in Vue. Wir können diese neue Komponentendatei im Verzeichnis resources/assets/js/components erstellen. In diesem Verzeichnis können wir auf dieses Beispiel verweisen. vue:

var app = new Vue({
  el: &#39;#app&#39;,
  data: {
    post: {
      title: &#39;&#39;,
      body: &#39;&#39;
    },
    errors: [],
    submitted: false
  },
  methods: {
    createPost: function () {
      var self = this;
      axios.post(&#39;/post/save&#39;, self.post).then(function(response) {
        // form submission successful, reset post data and set submitted to true
        self.post = {
          title: &#39;&#39;,
          body: &#39;&#39;,
        };
        // clear previous form errors
        self.errors = &#39;&#39;;
        self.submitted = true;
      }).catch(function (error) {
        // form submission failed, pass form errors to errors array
        self.errors = error.response.data;
      });
    }
  }
});
Nach dem Login kopieren

Hier übergeben wir die Datenfehler in der übergeordneten Komponente an die untergeordnete Komponente, um Fehlerinformationen in der untergeordneten Komponente anzuzeigen. Vergessen Sie nach dem Erstellen der Unterkomponente nicht, sie in den oben genannten Ressourcen/assets/js/app.js einzuführen:

<template>
  <span class="help-block">
    <slot></slot>
  </span>
</template>
<script>
  export default {
    props: [&#39;errors&#39;]
  }
</script>
Nach dem Login kopieren

Auf diese Weise haben wir alle Codierungsarbeiten abgeschlossen und führen dann die aus Folgender Befehl zum Neukompilieren von js:

Vue.component(&#39;form-error&#39;, require(&#39;./components/FormError.vue&#39;));
Nach dem Login kopieren

Natürlich bevorzugen wir in der Entwicklungsumgebung die Verwendung von

. Dieser Befehl wartet auf Änderungen in den Front-End-Ressourcendateien und führt dann eine Neukompilierung durch, um eine manuelle Kompilierung zu vermeiden nach jeder Änderung.
npm run dev
Nach dem Login kopieren

Auf diese Weise wird die Seite zum Veröffentlichen/Erstellen im Browser normal angezeigt: npm run watch

Füllen Sie nichts aus und klicken Sie auf „Erstellen“. Klicken Sie auf die Schaltfläche und die Seite wird angezeigt. Die Fehlermeldung kann angezeigt werden:

Nach dem Ausfüllen der entsprechenden Felder und dem anschließenden Absenden wird angezeigt, dass die Erstellung erfolgreich war:

Auf diese Weise haben wir eine einfache Ajax-Formularüberprüfungsfunktion basierend auf Vue in Laravel fertiggestellt. Ich persönlich habe das Gefühl, dass dies die Entwicklungseffizienz erheblich verbessert hat.

Das obige ist der detaillierte Inhalt vonImplementierung von Ajax-Formularvalidierungsbeispielen mit Vue.js in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Vue.js vs. React: projektspezifische Überlegungen Vue.js vs. React: projektspezifische Überlegungen Apr 09, 2025 am 12:01 AM

Vue.js eignet sich für kleine und mittelgroße Projekte und schnelle Iterationen, während React für große und komplexe Anwendungen geeignet ist. 1) Vue.js ist einfach zu bedienen und für Situationen geeignet, in denen das Team nicht ausreicht oder die Projektskala klein ist. 2) React hat ein reichhaltigeres Ökosystem und eignet sich für Projekte mit hoher Leistung und komplexen funktionalen Bedürfnissen.

Ist Vue.js schwer zu lernen? Ist Vue.js schwer zu lernen? Apr 04, 2025 am 12:02 AM

Vue.js ist nicht schwer zu lernen, insbesondere für Entwickler mit einer JavaScript -Stiftung. 1) Sein progressives Design und das reaktionsschnelle System vereinfachen den Entwicklungsprozess. 2) Komponentenbasierte Entwicklung macht das Codemanagement effizienter. 3) Die Nutzungsbeispiele zeigen eine grundlegende und fortgeschrittene Verwendung. 4) Häufige Fehler können durch VEDEVTOOLS debuggen werden. 5) Leistungsoptimierung und Best Practices, z. B. die Verwendung von V-IF/V-Shows und Schlüsselattributen, können die Anwendungseffizienz verbessern.

Wird Vue für Frontend oder Backend verwendet? Wird Vue für Frontend oder Backend verwendet? Apr 03, 2025 am 12:07 AM

Vue.js wird hauptsächlich für die Front-End-Entwicklung verwendet. 1) Es handelt sich um ein leichtes und flexibles JavaScript-Framework, das sich auf den Aufbau von Benutzeroberflächen und einseitigen Anwendungen konzentriert. 2) Der Kern von Vue.js ist das reaktionsschnelle Datensystem, und die Ansicht wird automatisch aktualisiert, wenn sich die Daten ändert. 3) Es unterstützt die Komponentenentwicklung und die Benutzeroberfläche kann in unabhängige und wiederverwendbare Komponenten aufgeteilt werden.

Wie bekomme ich den Rückgabecode, wenn das Senden von E -Mails in Laravel fehlschlägt? Wie bekomme ich den Rückgabecode, wenn das Senden von E -Mails in Laravel fehlschlägt? Apr 01, 2025 pm 02:45 PM

Methode zum Abholen des Rücksendecode, wenn das Senden von Laravel -E -Mails fehlschlägt. Wenn Sie Laravel zur Entwicklung von Anwendungen verwenden, stellen Sie häufig Situationen auf, in denen Sie Überprüfungscodes senden müssen. Und in Wirklichkeit ...

Laravel Redis -Verbindungsfreigabe: Warum wirkt sich die Auswahlmethode auf andere Verbindungen aus? Laravel Redis -Verbindungsfreigabe: Warum wirkt sich die Auswahlmethode auf andere Verbindungen aus? Apr 01, 2025 am 07:45 AM

Die Auswirkungen des Austauschs von Redis -Verbindungen im Laravel -Framework und der Auswahl von Methoden bei Verwendung von Laravel -Framework und Redis können Entwickler auf ein Problem stoßen: Durch Konfiguration ...

Laravel Multi-Tenant-Erweiterungsstanz/Mietverhältnis: Wie passen Sie die Host-Adresse einer Mieterdatenbankverbindung an? Laravel Multi-Tenant-Erweiterungsstanz/Mietverhältnis: Wie passen Sie die Host-Adresse einer Mieterdatenbankverbindung an? Apr 01, 2025 am 09:09 AM

Benutzerdefinierte Mieterdatenbankverbindung in Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis beim Erstellen von Multi-Mandanten-Anwendungen mit Laravel Multi-Tenant-Erweiterungspaket Stanz/Mietverhältnis, ...

Laravel eloquent orm bei bangla partieller Modellsuche) Laravel eloquent orm bei bangla partieller Modellsuche) Apr 08, 2025 pm 02:06 PM

Laraveleloquent-Modellab Abruf: Das Erhalten von Datenbankdaten Eloquentorm bietet eine prägnante und leicht verständliche Möglichkeit, die Datenbank zu bedienen. In diesem Artikel werden verschiedene eloquente Modellsuchtechniken im Detail eingeführt, um Daten aus der Datenbank effizient zu erhalten. 1. Holen Sie sich alle Aufzeichnungen. Verwenden Sie die Methode All (), um alle Datensätze in der Datenbanktabelle zu erhalten: UseApp \ Models \ post; $ posts = post :: all (); Dies wird eine Sammlung zurückgeben. Sie können mit der Foreach-Schleife oder anderen Sammelmethoden auf Daten zugreifen: foreach ($ postas $ post) {echo $ post->

Wie kann man die Gültigkeit von Redis -Verbindungen im Laravel6 -Projekt effektiv überprüfen? Wie kann man die Gültigkeit von Redis -Verbindungen im Laravel6 -Projekt effektiv überprüfen? Apr 01, 2025 pm 02:00 PM

Wie man die Gültigkeit von Redis -Verbindungen in Laravel6 -Projekten überprüft, ist ein häufiges Problem, insbesondere wenn Projekte auf Redis für die Geschäftsverarbeitung angewiesen sind. Das Folgende ist ...

See all articles