Benutzer-Werkzeuge

Webseiten-Werkzeuge


laravel:beispiel_controller_blade

Dies ist eine alte Version des Dokuments!


Ein kleines Beispiel für controller und blade-Templates

Controller

In diesem Beispiel soll der User bei der Registrierung ein Bundesland auswählen. Für die Registrierung unser User erstellen wir einen RegisterController:

php artisan make:controller RegisterController

Die im Verzeichnis app\Http\Controllers„ von artisan angelegte Datei „RegisterController.php“ ergänzen wir um eine Methode.In dieser Methode benutzen wir das Model „Bundesland“, welches wir im vorherigen Beispiel angelegt haben.

public function index()
{
    $bundeslaender = Bundesland::all( array( 'id', 'Bundesland' ) );
    return view( 'register', compact( "bundeslaender" ) );
}

Weitere Beispiele:

Nur die ersten 10 Bundesländer ausgeben:

$bundeslaender = Bundesland::all() -> take( 10 );

Liste umgekehrt sortieren:

$bundeslaender = Bundesland::all() -> sortByDesc( 'id' );

Nur alle Bundesländer ausgeben, die mit dem Buchstaben „B“ beginnen:

$bundeslaender = Bundesland::query() -> where( 'Bundesland', 'LIKE', 'B%' ) -> get();

Blade-Templates

Blade ist eine Template-Engine vom PHP-Webframework Laravel. Alle Blade-Templates haben die Dateiendung “.blade.php„.

Als nächstes erstellen wir das Blade-Template „register.blade.php“, welches wir oben im Controller aufgerufen haben und geben hier die Bundesländer als Auswahlliste aus.

    <div class="row justify-content-center">
        <div class="col-md-2"><label for="Bundesland">Bundesland: </label></div>
        <div class="col-md-10">
            <select name="Bundesland" id="Bundesland" class="custom-select" >
                @foreach( $bundeslaender as $bundesland )
                    <option value="{{ $bundesland->ID }}">{{ $bundesland->Bundesland }}</option>
                @endforeach
            </select>
        </div>
    </div>

Funktionen werden immer mit dem @-Zeichen angeführt. Variablen stehen immer in doppelten geschweiften Klammern laravel.

Route für "/Register" einrichten

Damit die neue Seite über die URL …“/register„ auch erreichbar ist fehlt jetzt noch die entsprechende Route in der „routes/web.php“:

Route::get('/register', 'RegisterController@index');
laravel/beispiel_controller_blade.1568147708.txt.gz · Zuletzt geändert: 2019/09/10 22:35 von webproducer