Seitenleiste

Das Offcanvas-Panel ist Teil der App-Shell von nfgarching/core. Die Demo zeigt hier das aktuelle Konto.

Demo-Konto

ENV: production · Package-Version 1.0.0


Prop-Model

Prop ist ein polymorphes Key-Value-Model mit Status und Typ. Jedes Model kann über eine morphMany-Beziehung beliebig viele Props tragen – in dieser Demo die Kontakte. Die CRUD-Oberfläche liefert das Package mit dem PropController selbst.
Am eigenen Model app/Models/Contact.php
use Illuminate\Database\Eloquent\Relations\MorphMany;
use Nfgarching\Core\Models\Prop;

public function props(): MorphMany
{
    return $this->morphMany(Prop::class, 'model');
}

// Verwendung
$contact->props()->create([
    'key' => 'iban_1', 'state' => 'verified', 'type' => 'iban',
    'label' => 'Privat', 'value' => 'DE00 0000 0000 0000 0000 00',
]);

Die Tabelle props legt die Anwendung an (database/migrations/…_create_props_table.php): id, model_type, model_id, key, state, type, label, value, data (JSON), memo.

Demo-Datenbestand
Props
40
Kontakte mit Props
10

state

active: 8 error: 8 pending: 8 unverified: 8 verified: 8

type

birth_date: 10 death_date: 10 iban: 10 metadata: 10

CRUD-Seiten des Packages

Die Routen core.props.* liegen in der Rollengruppe admin. Mit spatie/laravel-permission hängt RouteRoles deshalb role:admin an – nur das Demo-Konto Admin kommt hinein, alle anderen erhalten 403.

Melde dich als Admin an, um die Prop-Verwaltung zu öffnen.

destroy() und action() sind im Package noch Stubs mit dd(). Die Demo fängt core.props.destroy, core.props.action und die Sammelaktion „Löschen“ per Middleware ab und meldet „In der Demo deaktiviert“. Die Sammelaktion „Ändern“ (store mit switchTo=change) funktioniert.

Dokumentation auf GitHub (README.md#prop-model)

Demo – alle Daten werden täglich zurückgesetzt.