Tutti gli strumenti
Gratuito

Un riferimento Laravel stampabile e ricercabile — Artisan, routing, Eloquent, il query builder, migrazioni, Blade, validazione e collection. Gratis.

CLI Artisan

14
php artisan serve
Avvia il server di sviluppo locale
php artisan make:model Post -mcr
Model con migration, controller e resource
php artisan make:controller PostController
Genera una nuova classe controller
php artisan make:migration create_posts_table
Crea un nuovo file di migration
php artisan migrate
Esegue le migration del database in sospeso
php artisan migrate:fresh --seed
Elimina tutte le tabelle, ri-migra e popola
php artisan db:seed
Esegue i seeder del database
php artisan tinker
Apre una shell REPL interattiva
php artisan route:list
Elenca tutte le route registrate
php artisan optimize
Mette in cache config, route e view
php artisan queue:work
Elabora i job in coda
php artisan schedule:work
Esegue lo scheduler in primo piano
php artisan storage:link
Crea un symlink da storage al percorso public
php artisan key:generate
Genera la chiave dell'applicazione

Routing

13
Route::get('/users', [UserController::class, 'index'])
Definisce una route GET verso un controller
Route::post('/users', [UserController::class, 'store'])
Definisce una route POST
Route::put('/users/{user}', [UserController::class, 'update'])
Definisce una route PUT
Route::patch('/users/{user}', [UserController::class, 'update'])
Definisce una route PATCH
Route::delete('/users/{user}', [UserController::class, 'destroy'])
Definisce una route DELETE
Route::get('/users/{id}', $fn)
Parametro di route obbligatorio
Route::get('/users/{id?}', $fn)
Parametro di route opzionale
Route::get('/profile', $fn)->name('profile')
Assegna un nome a una route per la generazione di URL
Route::get('/admin', $fn)->middleware('auth')
Collega un middleware a una route
Route::resource('posts', PostController::class)
Registra route resource RESTful
Route::prefix('admin')->group(function () {})
Raggruppa le route sotto un prefisso URI
Route::controller(PostController::class)->group($fn)
Raggruppa le route verso un unico controller
Route::fallback($fn)
Gestisce le route non corrispondenti (404)

Controller

10
php artisan make:controller PostController --resource
Controller resource con metodi CRUD
public function __invoke(Request $request)
Controller invocabile a singola azione
public function index() {}
Elenca le risorse (metodo resource)
public function store(Request $request) {}
Persiste una nuova risorsa
public function show(Post $post) {}
Mostra una risorsa (route model binding)
public function __construct(PostService $svc) {}
Inietta una dipendenza tramite il costruttore
return view('posts.index', ['posts' => $posts])
Restituisce una view Blade con dati
return response()->json($data)
Restituisce una risposta JSON
return redirect()->route('posts.index')
Reindirizza a una route con nome
return back()
Reindirizza alla pagina precedente

Eloquent ORM

14
Post::all()
Ottiene ogni record
Post::find($id)
Trova un record per chiave primaria
Post::where('active', true)->first()
Primo record che soddisfa una condizione
Post::create(['title' => 'Hi'])
Assegnazione di massa e persistenza di un record
$post->update(['title' => 'Edited'])
Aggiorna un model esistente
$post->delete()
Elimina un'istanza di model
Post::firstOrCreate(['slug' => $slug])
Trova o crea un record corrispondente
Post::updateOrCreate($attrs, $values)
Aggiorna se trovato, altrimenti crea
Post::with('author')->get()
Carica in modo eager una relazione
public function comments() { return $this->hasMany(Comment::class); }
Relazione uno-a-molti
public function author() { return $this->belongsTo(User::class); }
Relazione uno-a-molti inversa
protected $fillable = ['title', 'body'];
Attributi assegnabili in massa
protected function casts(): array { return ['published_at' => 'datetime']; }
Cast degli attributi (metodo casts())
Post::onlyTrashed()->restore()
Ripristina i record soft-deleted

Query builder

13
DB::table('users')->get()
Recupera tutte le righe da una tabella
DB::table('users')->where('votes', '>', 100)->get()
Filtra le righe per condizione
DB::table('users')->join('posts', 'users.id', '=', 'posts.user_id')
Inner join tra due tabelle
DB::table('users')->orderBy('name')->get()
Ordina i risultati per una colonna
DB::table('orders')->groupBy('status')->get()
Raggruppa le righe per una colonna
DB::table('users')->select('name', 'email')->get()
Seleziona colonne specifiche
DB::table('users')->insert(['name' => 'Sam'])
Inserisce una nuova riga
DB::table('users')->where('id', 1)->update(['votes' => 1])
Aggiorna le righe corrispondenti
DB::table('users')->pluck('email')
Ottiene una singola colonna come collezione
DB::table('users')->count()
Conta le righe corrispondenti
DB::table('users')->where('id', 1)->exists()
Verifica se esistono righe
DB::table('users')->paginate(15)
Pagina i risultati
DB::table('users')->chunk(100, $fn)
Elabora i risultati a blocchi

Migration e schema

12
Schema::create('posts', function (Blueprint $table) {})
Crea una nuova tabella
$table->id()
Chiave primaria autoincrementante
$table->string('title')
Colonna VARCHAR
$table->integer('votes')
Colonna intera
$table->boolean('active')
Colonna booleana
$table->timestamps()
Colonne created_at e updated_at
$table->foreignId('user_id')->constrained()
Chiave esterna con un vincolo
$table->string('note')->nullable()
Consente valori NULL
$table->boolean('active')->default(true)
Imposta un valore predefinito
$table->index('slug')
Aggiunge un indice a una colonna
$table->unique('email')
Aggiunge un vincolo univoco
$table->dropColumn('votes')
Elimina una colonna

Template Blade

14
@if ($ok) ... @elseif ($x) ... @else ... @endif
Rendering condizionale
@foreach ($posts as $post) ... @endforeach
Itera su una collezione
@forelse ($posts as $post) ... @empty ... @endforelse
Ciclo con fallback per insieme vuoto
{{ $variable }}
Stampa output con escape
{!! $html !!}
Stampa HTML grezzo senza escape
@extends('layouts.app')
Eredita da un layout
@section('content') ... @endsection
Definisce una sezione di layout
@yield('content')
Emette una sezione in un layout
@include('partials.nav')
Include un'altra view
<x-alert type="error" />
Renderizza un componente Blade
@csrf
Campo token CSRF per i form
@auth ... @endauth
Mostra contenuto agli utenti autenticati
@can('update', $post) ... @endcan
Controllo del gate di autorizzazione
{{ $loop->index }}
Variabile di ciclo dentro @foreach

Validazione

12
$request->validate(['title' => 'required'])
Valida i dati della richiesta inline
'email' => 'required|email'
Regola email obbligatoria e valida
'name' => 'required|max:255'
Obbligatorio con una lunghezza massima
'email' => 'unique:users,email'
Deve essere univoco in una tabella
'age' => 'nullable|integer|min:18'
Intero opzionale con un minimo
'role' => ['required', Rule::in(['admin', 'user'])]
Vincola ai valori consentiti
php artisan make:request StorePostRequest
Genera una classe Form Request
public function rules(): array { return [...]; }
Regole di validazione del Form Request
public function authorize(): bool { return true; }
Autorizzazione del Form Request
public function messages(): array { return [...]; }
Messaggi di validazione personalizzati
$validator = Validator::make($data, $rules)
Crea un validator manualmente
$request->validated()
Ottiene solo l'input validato

Richieste e risposte

10
request()->input('name')
Recupera un valore di input
request()->query('page')
Recupera un valore della query string
request()->all()
Ottiene tutto l'input come array
request()->only(['name', 'email'])
Ottiene un sottoinsieme dell'input
request()->has('name')
Verifica se l'input è presente
response()->json(['ok' => true])
Restituisce una risposta JSON
redirect()->route('home')->with('status', 'Saved')
Reindirizza con un messaggio flash
back()->withInput()
Reindirizza indietro mantenendo l'input precedente
abort(404)
Solleva un'eccezione HTTP
abort_if($user->banned, 403)
Interrompe condizionatamente la richiesta

Collezioni

13
$collection->map(fn ($x) => $x * 2)
Trasforma ogni elemento
$collection->filter(fn ($x) => $x > 0)
Mantiene gli elementi corrispondenti
$collection->each(fn ($x) => $x->save())
Esegue una callback per ogni elemento
$collection->pluck('name')
Estrae una colonna
$collection->reduce(fn ($c, $x) => $c + $x, 0)
Riduce a un singolo valore
$collection->sortBy('created_at')
Ordina per una chiave
$collection->groupBy('status')
Raggruppa gli elementi per una chiave
$collection->where('active', true)
Filtra per una coppia chiave/valore
$collection->first()
Ottiene il primo elemento
$collection->contains('name', 'Sam')
Verifica la presenza di un elemento corrispondente
$collection->sum('price')
Somma una colonna
$collection->flatten()
Appiattisce le collezioni annidate
$collection->toArray()
Converte in un array semplice

Auth e middleware

11
Auth::user()
Ottiene l'utente autenticato
Auth::check()
Verifica se un utente ha effettuato l'accesso
Auth::id()
Ottiene l'ID dell'utente autenticato
Auth::login($user)
Effettua l'accesso di un utente
Auth::logout()
Disconnette l'utente corrente
auth()->user()
Helper per l'utente corrente
Route::get('/home', $fn)->middleware('auth')
Protegge una route con l'autenticazione
Gate::allows('update', $post)
Controlla un gate di autorizzazione
$user->can('update', $post)
Verifica un'abilità rispetto a una policy
php artisan make:policy PostPolicy --model=Post
Genera una policy di autorizzazione
php artisan make:middleware EnsureTokenIsValid
Genera una classe middleware

Helper e varie

12
config('app.name')
Legge un valore di configurazione
env('APP_DEBUG', false)
Legge una variabile d'ambiente
route('posts.show', $post)
Genera un URL verso una route con nome
url('/dashboard')
Genera un URL completamente qualificato
asset('css/app.css')
URL per un asset pubblico
old('email')
Recupera l'input flash precedente
now()->addDays(7)
Timestamp Carbon corrente
Str::slug('My Title')
Helper per stringhe (slugify)
collect([1, 2, 3])->sum()
Crea una collezione da un array
cache()->remember('key', 60, $fn)
Mette in cache un valore per una durata
dd($value)
Mostra un valore e interrompe l'esecuzione
Storage::put('file.txt', $contents)
Scrive un file su storage

Nessuna voce corrisponde a “:q”.


Hai bisogno di aiuto?
Hai riscontrato un problema con questo strumento? Faccelo sapere.
Segnala un problema

Aggiungi questo strumento gratuito al tuo sito web — copia e incolla il codice qui sotto.