Analyse von Unteransichten und Formularwiederverwendung im Laravel5-Framework

不言
Freigeben: 2023-04-01 06:42:02
Original
1213 Leute haben es durchsucht

Dieser Artikel stellt hauptsächlich die Verwendung von Unteransichten und die Wiederverwendung von Formularen im Laravel5-Framework vor. Er ist sehr hilfreich für alle, die das Laravel5-Framework beherrschen.

Wir müssen uns um die Bearbeitung von Artikeln kümmern. Natürlich können wir neue Routen manuell hinzufügen, so:

Route::get('/articles/{id}/edit', 'ArticleController@edit');
Nach dem Login kopieren

Lassen Sie uns artisan’s route:list in der Befehlszeile verwenden, um unsere aktuellen Routen anzuzeigen:

php artisan route:list
Nach dem Login kopieren

In RESTful. In diesem Fall ist es Möglicherweise ist es eine gute Wahl, die Ressourcenroute von Laravel direkt zu verwenden. Dann entfernen wir alle Routen und fügen nur die einzige hinzu:

Route::resource('articles', 'ArticlesController');
Nach dem Login kopieren

Verwenden Sie php artisan route:list erneut, um die Route anzuzeigen, wow, eine Menge Routen entstehen, die unseren Erwartungen entsprechen. Schauen Sie sich jeden Artikel genau an.

Jetzt Methode im Controller hinzufügen:

  public function edit($id) {
    $article = Article::findOrFail($id);

    return view('articles.edit', compact('article'));
  }
Nach dem Login kopieren

Jetzt Ansicht erstellen

@extends('layout')

@section('content')
  <h1>Edit: {!! $article->title !!} </h1>

  <hr/>

  ...
Nach dem Login kopieren

Okay, ich gebe zu, dass diese Codes aus create.blade.php kopiert und ein wenig geändert wurden. Die Frage ist, müssen wir sie wiederholen? Wir werden uns später mit diesem Problem befassen. Schauen wir uns nun das Problem der Formularübermittlung an. In der Route, php artisan route:list, lesen Sie es noch einmal, die Änderung verwendet die PATCH-Methode, ändern wir die Ansicht:

{!! Form::open([&#39;method&#39; => &#39;PATCH&#39;, &#39;url&#39; => &#39;articles/&#39; . $article->id]) !!}
Nach dem Login kopieren

Besuchen Sie /articles/1/edit im Browser, überprüfen Sie den Quellcode und find laravel Das versteckte Feld von _method=PATCH wird automatisch generiert.

Ein Problem besteht darin, dass wir den Artikel bearbeiten, aber die Artikelinformationen nicht angezeigt werden:

 {!! Form::model($article, [&#39;method&#39; => &#39;PATCH&#39;, &#39;url&#39; => &#39;articles/&#39; . $article->id]) !!}
Nach dem Login kopieren

OK, alles ist in Ordnung, außer dass das Feld „publicated_on“ immer noch auf eingestellt ist aktuelles Datum, gefolgt von „Wir kümmern uns darum“.

Fügen Sie nun die Methode im Controller hinzu:

  public function update($id, \Illuminate\Http\Request $request) {
    $article = Article::findOrFail($id);
    $article->update($request->all());

    return redirect(&#39;articles&#39;);
  }
Nach dem Login kopieren

Wir müssen auch während des Änderungsprozesses überprüfen, ob wir unsere Request-Klasse wiederverwenden können. Benennen Sie CreateArticleRequest in das allgemeinere ArticleRequest um und vergessen Sie nicht, die Parameter in der Store-Methode zu ändern.

  public function update($id, Requests\ArticleRequest $request) {
    $article = Article::findOrFail($id);
    $article->update($request->all());

    return redirect(&#39;articles&#39;);
  }
Nach dem Login kopieren

Das verbleibende Problem besteht nun darin, dass unser neuer und bearbeiteter Code größtenteils denselben Code verwenden, z. B. Fehler anzeigen, aber in zwei Kopien vorhanden sind. Ändern wir ihn diese Frage.

Wir erstellen eine neue Datei list.blade.php direkt unter Ansichten/Artikeln und kopieren den Fehlerbehandlungscode aus create.blade.php:

@if ($errors->any())
  <ul class="alert alert-danger">
    @foreach($errors->all() as $error)
      <li>{{ $error }}</li>
    @endforeach
  </ul>
@endif
Nach dem Login kopieren

Ersetzen Sie in create.blade.php einfach den Fehlerbehandlungscode durch die folgende Anweisung:

@include(&#39;articles.list&#39;)
Nach dem Login kopieren

Befassen wir uns noch einmal mit dem Formularcode. Der Formularcode ist anders, außer dass das Formular anders ist , andere sind fast gleich. Wir erstellen eine Ansicht Articles/form_partial.blade.php und kopieren den Code

<p class="form-group">
  {!! Form::label(&#39;title&#39;, &#39;Title:&#39;) !!}
  {!! Form::text(&#39;title&#39;, null, [&#39;class&#39; => &#39;form-control&#39;]) !!}
</p>

<p class="form-group">
  {!! Form::label(&#39;body&#39;, &#39;Body:&#39;) !!}
  {!! Form::textarea(&#39;body&#39;, null, [&#39;class&#39; => &#39;form-control&#39;]) !!}
</p>

<p class="form-group">
  {!! Form::label(&#39;published_at&#39;, &#39;Publish On:&#39;) !!}
  {!! Form::input(&#39;date&#39;, &#39;published_at&#39;, date(&#39;Y-m-d&#39;), [&#39;class&#39; => &#39;form-control&#39;]) !!}
</p>

<p class="form-group">
  {{--这里要设置变量,依据是编辑还是修改来改变,当然也可以不放置在partial中--}}
  {!! Form::submit($submitButtonText, [&#39;class&#39; => &#39;btn btn-primary form-control&#39;]) !!}
</p>
Nach dem Login kopieren

Modify create.blade.php

@extends('layout')

@section('content')
  

Write a New Article


@include(&#39;articles.list&#39;) {{--使用我们添加的 illuminate\html 开源库--}} {!! Form::open(['url' => 'articles']) !!} @include('articles.form_partial', ['submitButtonText' => 'Add Article']) {!! Form::close() !!} @stop
Nach dem Login kopieren

Edit.blade.php ändern

@extends('layout')

@section('content')
  

Edit: {!! $article->title !!}


@include(&#39;articles.list&#39;) {{--使用我们添加的 illuminate\html 开源库--}} {!! Form::model($article, [&#39;method&#39; => &#39;PATCH&#39;, &#39;url&#39; => &#39;articles/&#39; . $article->id]) !!} @include('articles.form_partial', ['submitButtonText' => 'Update Article']) {!! Form::close() !!} @stop
Nach dem Login kopieren

Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, er wird hilfreich sein Bitte achten Sie auf die chinesische PHP-Website, um weitere verwandte Inhalte zu erhalten!

Verwandte Empfehlungen:

Seiten- und Formularvalidierung in Laravel 4

Über Laravel-Framework-Datenbank-CURD-Operationen und kohärente Operationsanalyse

Über die Methode des PHP-Frameworks Laravel Plug-in Pagination zur Implementierung von benutzerdefiniertem Paging

Das obige ist der detaillierte Inhalt vonAnalyse von Unteransichten und Formularwiederverwendung im Laravel5-Framework. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!