Alle Werkzeuge
Kostenlos

Eine durchsuchbare, druckbare Laravel-Referenz — Artisan, Routing, Eloquent, der Query-Builder, Migrationen, Blade, Validierung und Collections. Kostenlos.

Artisan-CLI

14
php artisan serve
Den lokalen Entwicklungsserver starten
php artisan make:model Post -mcr
Model mit Migration, Controller und Resource
php artisan make:controller PostController
Eine neue Controller-Klasse generieren
php artisan make:migration create_posts_table
Eine neue Migrationsdatei erstellen
php artisan migrate
Ausstehende Datenbankmigrationen ausführen
php artisan migrate:fresh --seed
Alle Tabellen löschen, neu migrieren und seeden
php artisan db:seed
Die Datenbank-Seeder ausführen
php artisan tinker
Eine interaktive REPL-Shell öffnen
php artisan route:list
Alle registrierten Routen auflisten
php artisan optimize
Konfiguration, Routen und Views cachen
php artisan queue:work
Jobs in der Queue verarbeiten
php artisan schedule:work
Den Scheduler im Vordergrund ausführen
php artisan storage:link
Storage per Symlink auf den public-Pfad verknüpfen
php artisan key:generate
Den Anwendungsschlüssel generieren

Routing

13
Route::get('/users', [UserController::class, 'index'])
Eine GET-Route zu einem Controller definieren
Route::post('/users', [UserController::class, 'store'])
Eine POST-Route definieren
Route::put('/users/{user}', [UserController::class, 'update'])
Eine PUT-Route definieren
Route::patch('/users/{user}', [UserController::class, 'update'])
Eine PATCH-Route definieren
Route::delete('/users/{user}', [UserController::class, 'destroy'])
Eine DELETE-Route definieren
Route::get('/users/{id}', $fn)
Erforderlicher Routenparameter
Route::get('/users/{id?}', $fn)
Optionaler Routenparameter
Route::get('/profile', $fn)->name('profile')
Eine Route für die URL-Generierung benennen
Route::get('/admin', $fn)->middleware('auth')
Middleware an eine Route anhängen
Route::resource('posts', PostController::class)
RESTful-Resource-Routen registrieren
Route::prefix('admin')->group(function () {})
Routen unter einem URI-Präfix gruppieren
Route::controller(PostController::class)->group($fn)
Routen zu einem Controller gruppieren
Route::fallback($fn)
Nicht zugeordnete Routen behandeln (404)

Controller

10
php artisan make:controller PostController --resource
Resource-Controller mit CRUD-Methoden
public function __invoke(Request $request)
Single-Action-invokierbarer Controller
public function index() {}
Ressourcen auflisten (resource-Methode)
public function store(Request $request) {}
Eine neue Ressource persistieren
public function show(Post $post) {}
Eine Ressource anzeigen (Route Model Binding)
public function __construct(PostService $svc) {}
Eine Abhängigkeit über den Konstruktor injizieren
return view('posts.index', ['posts' => $posts])
Eine Blade-View mit Daten zurückgeben
return response()->json($data)
Eine JSON-Antwort zurückgeben
return redirect()->route('posts.index')
Auf eine benannte Route weiterleiten
return back()
Auf die vorherige Seite weiterleiten

Eloquent-ORM

14
Post::all()
Jeden Datensatz holen
Post::find($id)
Einen Datensatz per Primärschlüssel finden
Post::where('active', true)->first()
Erster Datensatz, der einer Bedingung entspricht
Post::create(['title' => 'Hi'])
Einen Datensatz massenzuweisen und persistieren
$post->update(['title' => 'Edited'])
Ein bestehendes Model aktualisieren
$post->delete()
Eine Model-Instanz löschen
Post::firstOrCreate(['slug' => $slug])
Einen passenden Datensatz finden oder erstellen
Post::updateOrCreate($attrs, $values)
Aktualisieren wenn gefunden, sonst erstellen
Post::with('author')->get()
Eine Beziehung eager laden
public function comments() { return $this->hasMany(Comment::class); }
Eins-zu-viele-Beziehung
public function author() { return $this->belongsTo(User::class); }
Inverse Eins-zu-viele-Beziehung
protected $fillable = ['title', 'body'];
Massenzuweisbare Attribute
protected function casts(): array { return ['published_at' => 'datetime']; }
Attribut-Casts (casts()-Methode)
Post::onlyTrashed()->restore()
Soft-gelöschte Datensätze wiederherstellen

Query Builder

13
DB::table('users')->get()
Alle Zeilen einer Tabelle abrufen
DB::table('users')->where('votes', '>', 100)->get()
Zeilen nach einer Bedingung filtern
DB::table('users')->join('posts', 'users.id', '=', 'posts.user_id')
Zwei Tabellen per Inner Join verbinden
DB::table('users')->orderBy('name')->get()
Ergebnisse nach einer Spalte sortieren
DB::table('orders')->groupBy('status')->get()
Zeilen nach einer Spalte gruppieren
DB::table('users')->select('name', 'email')->get()
Bestimmte Spalten auswählen
DB::table('users')->insert(['name' => 'Sam'])
Eine neue Zeile einfügen
DB::table('users')->where('id', 1)->update(['votes' => 1])
Passende Zeilen aktualisieren
DB::table('users')->pluck('email')
Eine einzelne Spalte als Collection holen
DB::table('users')->count()
Passende Zeilen zählen
DB::table('users')->where('id', 1)->exists()
Prüfen, ob Zeilen existieren
DB::table('users')->paginate(15)
Die Ergebnisse paginieren
DB::table('users')->chunk(100, $fn)
Ergebnisse in Chunks verarbeiten

Migrationen & Schema

12
Schema::create('posts', function (Blueprint $table) {})
Neue Tabelle erstellen
$table->id()
Automatisch inkrementierender Primärschlüssel
$table->string('title')
VARCHAR-Spalte
$table->integer('votes')
Integer-Spalte
$table->boolean('active')
Boolean-Spalte
$table->timestamps()
created_at- und updated_at-Spalten
$table->foreignId('user_id')->constrained()
Fremdschlüssel mit einem Constraint
$table->string('note')->nullable()
NULL-Werte erlauben
$table->boolean('active')->default(true)
Einen Standardwert setzen
$table->index('slug')
Einer Spalte einen Index hinzufügen
$table->unique('email')
Ein Unique-Constraint hinzufügen
$table->dropColumn('votes')
Eine Spalte löschen

Blade-Templates

14
@if ($ok) ... @elseif ($x) ... @else ... @endif
Bedingtes Rendern
@foreach ($posts as $post) ... @endforeach
Über eine Collection iterieren
@forelse ($posts as $post) ... @empty ... @endforelse
Schleife mit einem Leer-Fallback
{{ $variable }}
Escapte Ausgabe ausgeben
{!! $html !!}
Nicht-escaptes Roh-HTML ausgeben
@extends('layouts.app')
Von einem Layout erben
@section('content') ... @endsection
Eine Layout-Sektion definieren
@yield('content')
Eine Sektion in einem Layout ausgeben
@include('partials.nav')
Eine andere View einbinden
<x-alert type="error" />
Eine Blade-Komponente rendern
@csrf
CSRF-Token-Feld für Formulare
@auth ... @endauth
Inhalt authentifizierten Benutzern zeigen
@can('update', $post) ... @endcan
Autorisierungs-Gate-Prüfung
{{ $loop->index }}
Schleifenvariable innerhalb von @foreach

Validierung

12
$request->validate(['title' => 'required'])
Anfragedaten inline validieren
'email' => 'required|email'
Regel für erforderlich und gültige E-Mail
'name' => 'required|max:255'
Erforderlich mit einer Maximallänge
'email' => 'unique:users,email'
Muss in einer Tabelle eindeutig sein
'age' => 'nullable|integer|min:18'
Optionale Ganzzahl mit einem Minimum
'role' => ['required', Rule::in(['admin', 'user'])]
Auf erlaubte Werte beschränken
php artisan make:request StorePostRequest
Eine Form-Request-Klasse generieren
public function rules(): array { return [...]; }
Form-Request-Validierungsregeln
public function authorize(): bool { return true; }
Form-Request-Autorisierung
public function messages(): array { return [...]; }
Eigene Validierungsmeldungen
$validator = Validator::make($data, $rules)
Einen Validator manuell erstellen
$request->validated()
Nur validierte Eingaben holen

Requests & Responses

10
request()->input('name')
Einen Eingabewert abrufen
request()->query('page')
Einen Query-String-Wert abrufen
request()->all()
Alle Eingaben als Array holen
request()->only(['name', 'email'])
Eine Teilmenge der Eingaben holen
request()->has('name')
Prüfen, ob eine Eingabe vorhanden ist
response()->json(['ok' => true])
Eine JSON-Antwort zurückgeben
redirect()->route('home')->with('status', 'Saved')
Mit einer Flash-Nachricht weiterleiten
back()->withInput()
Zurückleiten und die alte Eingabe behalten
abort(404)
Eine HTTP-Exception werfen
abort_if($user->banned, 403)
Die Anfrage bedingt abbrechen

Collections

13
$collection->map(fn ($x) => $x * 2)
Jedes Element transformieren
$collection->filter(fn ($x) => $x > 0)
Passende Elemente behalten
$collection->each(fn ($x) => $x->save())
Einen Callback pro Element ausführen
$collection->pluck('name')
Eine Spalte extrahieren
$collection->reduce(fn ($c, $x) => $c + $x, 0)
Auf einen Wert reduzieren
$collection->sortBy('created_at')
Nach einem Schlüssel sortieren
$collection->groupBy('status')
Elemente nach einem Schlüssel gruppieren
$collection->where('active', true)
Nach einem Schlüssel/Wert-Paar filtern
$collection->first()
Das erste Element holen
$collection->contains('name', 'Sam')
Auf ein passendes Element prüfen
$collection->sum('price')
Eine Spalte summieren
$collection->flatten()
Verschachtelte Collections abflachen
$collection->toArray()
In ein einfaches Array umwandeln

Auth & Middleware

11
Auth::user()
Den authentifizierten Benutzer holen
Auth::check()
Prüfen, ob ein Benutzer angemeldet ist
Auth::id()
Die ID des authentifizierten Benutzers holen
Auth::login($user)
Einen Benutzer anmelden
Auth::logout()
Den aktuellen Benutzer abmelden
auth()->user()
Helfer für den aktuellen Benutzer
Route::get('/home', $fn)->middleware('auth')
Eine Route mit Auth schützen
Gate::allows('update', $post)
Ein Autorisierungs-Gate prüfen
$user->can('update', $post)
Eine Berechtigung gegen eine Policy prüfen
php artisan make:policy PostPolicy --model=Post
Eine Autorisierungs-Policy generieren
php artisan make:middleware EnsureTokenIsValid
Eine Middleware-Klasse generieren

Helfer & Sonstiges

12
config('app.name')
Einen Konfigurationswert lesen
env('APP_DEBUG', false)
Eine Umgebungsvariable lesen
route('posts.show', $post)
Eine URL zu einer benannten Route generieren
url('/dashboard')
Eine vollständig qualifizierte URL generieren
asset('css/app.css')
URL für ein öffentliches Asset
old('email')
Alte geflashte Eingaben abrufen
now()->addDays(7)
Aktueller Carbon-Zeitstempel
Str::slug('My Title')
String-Helfer (Slugify)
collect([1, 2, 3])->sum()
Eine Collection aus einem Array erstellen
cache()->remember('key', 60, $fn)
Einen Wert für eine Dauer cachen
dd($value)
Einen Wert dumpen und beenden
Storage::put('file.txt', $contents)
Eine Datei in den Storage schreiben

Kein Eintrag passt zu „:q“.


Brauchen Sie Hilfe?
Ein Problem mit diesem Tool gefunden? Sagen Sie es unserem Team.
Problem melden

Füge dieses kostenlose Tool zu deiner eigenen Website hinzu — kopiere den Code unten und füge ihn ein.