Laravel Formular


Standardmäßig werden für das Erstellen und für das Bearbeiten eines Eintrages unterschiedliche Views und somit verschiedene HTML-Formulare verwendet. Im Controller kann anhand der Methode unterschieden werden, ob es sich um einen neuen Eintrag (Insert) oder um das Bearbeiten eines bestehenden Eintrages handelt (update). 

Die Methode POST wird für neue Einträge verwendet, PUT/PATCH für Updates. Damit für Updates und Inserts dasselbe Formular verwendet werden kann, müssen wir im Controller unterscheiden ob es sich um einen neuen Eintrag oder um einen bestehenden handelt.

Ziel

Create

URL: item/create

lädt ein leeres Formular:

Überprüfung:

Eingabe einer Zahl:

..Redirect auf /item

Antwort:

"would create item property:456"

Edit

Aufruf: item/4/edit

lädt bereits gespeicherte Werte für ID: 4

beim Speichern wird die Eingabe im Controller überprüfen:

Ist die Validierung erfolgreich, findet ein Redirect auf /item statt:

Antwort:

"edit item ID:4 property:99"

 

Vorbereitung: Controller, Routes

 

Ich erstelle einen neuen Controller:

 

php artisan make:controller ItemController

 

Routes-File

Route::resource('item', 'ItemController');

 

 

View

Hier die View für das Edit / Create-Formular:

File: /resources/views/edit.blade.php

						@if (count($errors) > 0)
							<div class="alert alert-danger">
								<ul>
									@foreach ($errors->all() as $error)
										<li>{{ $error }}</li>
									@endforeach
								</ul>
							</div>
						@endif

						<form action="{{ url('item') }}" method="POST" class="form-horizontal">
								{{ csrf_field() }}
								<input type="hidden" name="id" class="form-control" value="{{$saveditem->id ?? ''}}">
								<input type="text" name="property" class="form-control" value="{{  old('property',$saveditem->property ?? null) }}">
								<button type="submit" class="btn btn-default">
									<i class="fa fa-btn fa-plus"></i>Speichern
								</button>
							
						</form>

Controller

Die Store-Funktion im Controller muss jetzt noch zwischen Update und Create entscheiden: Wird eine ID mitgegeben: Update, ansonsten: Create.

File:/app/Http/Controllers/ItemController.php

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class ItemController extends Controller
{
	public function create()
    {	
        return View('edit');
    }
	
    public function edit($id)
    {	

		$saveditem=(object) array(
				'id'  => $id,
				'property' => 'Property for a saved id'
			);
		/* DB Usage:
		$saveditem=Item::where('id',$id)->first();
		*/
		
        return View('edit',compact('saveditem'));
    }
	
	public function store(Request $request)
    {
			//dd($request);
            $this->validate($request, [
                   'property'       => 'required|numeric']);

					
			if ($request->id > 0) { //edit
				/*
					Missing: Test if the user is allowed to edit this Value
				*/
				dd("edit item ID:". $request->id. " property:". $request->property);				
			} else { //create
				dd("would create item property:". $request->property);
				/* DB Usage:
				$item = Item::create([
					'item' => $request->property
				 ]);
				 */
			}
		return redirect('home');
		
    }
}
positive Bewertung({{pro_count}})
Beitrag bewerten:
{{percentage}} % positiv
negative Bewertung({{con_count}})

DANKE für deine Bewertung!


Top-Artikel in diesem Bereich

Preview Laravel Beispiel Tutorial - Schritt für Schritt

Laravel Beispiel Tutorial - Schritt für Schritt

geändert: 27.07.2020 von Bernhard (Erstveröffentlichung: 21.08.2016)

Wie in dem zuvor veröffentlichten Artikel "Übersicht Laravel Funktion" bereits angekündigt, habe ich für Laravel ein Praxis-Beispiel erstellt. Das Beispiel kann bestimmte Datenbankeinträge erstellen, anzeigen, bearbeiten und löschen. In einem nächsten Beispiel werde ich zu dem hier beschriebenen Beispiel eine Benutzeranmeldung und Berechtigung hinzufügen (Authentification, Authorization), vorerst starten wir ohne dieser .... ... weiterlesen

Preview Laravel Vue

Laravel Vue

erstellt: 29.10.2019 von Bernhard

.vue Files setzen ein Webpack-Setup voraus ... ... weiterlesen

Preview Laravel Authentication und Authorization Beispiel

Laravel Authentication und Authorization Beispiel

geändert: 06.10.2019 von Bernhard (Erstveröffentlichung: 12.09.2016)

Laravel ist für Benutzer-Anmeldungen bereits vorbereitet, das Aktivieren der Funktion erfolgt mit einem einfachen Befehl. ... weiterlesen


Fragen / Kommentare


(sortiert nach Bewertung / Datum) [alle Kommentare(neueste zuerst)]

✍anonym
17.04.2019 06:50
User: mr noob 
gibt es eine erklärung zu dem code wäre echt cool