Foaie de referință Laravel
O referință Laravel căutabilă și imprimabilă — Artisan, rutare, Eloquent, constructorul de interogări, migrări, Blade, validare și colecții. Gratuit.
Artisan CLI
14php artisan serve
Pornește serverul local de dezvoltare
php artisan make:model Post -mcr
Model cu migrare, controller și resursă
php artisan make:controller PostController
Generează o clasă de controller nouă
php artisan make:migration create_posts_table
Creează un fișier de migrare nou
php artisan migrate
Rulează migrările de bază de date în așteptare
php artisan migrate:fresh --seed
Șterge toate tabelele, remigrează și seed
php artisan db:seed
Rulează seederele bazei de date
php artisan tinker
Deschide un shell REPL interactiv
php artisan route:list
Listează toate rutele înregistrate
php artisan optimize
Pune în cache config, rute și view-uri
php artisan queue:work
Procesează job-urile din coadă
php artisan schedule:work
Rulează scheduler-ul în prim-plan
php artisan storage:link
Symlink storage către calea publică
php artisan key:generate
Generează cheia aplicației
Rutare
13Route::get('/users', [UserController::class, 'index'])
Definește o rută GET către un controller
Route::post('/users', [UserController::class, 'store'])
Definește o rută POST
Route::put('/users/{user}', [UserController::class, 'update'])
Definește o rută PUT
Route::patch('/users/{user}', [UserController::class, 'update'])
Definește o rută PATCH
Route::delete('/users/{user}', [UserController::class, 'destroy'])
Definește o rută DELETE
Route::get('/users/{id}', $fn)
Parametru de rută obligatoriu
Route::get('/users/{id?}', $fn)
Parametru de rută opțional
Route::get('/profile', $fn)->name('profile')
Numește o rută pentru generarea de URL-uri
Route::get('/admin', $fn)->middleware('auth')
Atașează middleware la o rută
Route::resource('posts', PostController::class)
Înregistrează rute de resursă RESTful
Route::prefix('admin')->group(function () {})
Grupează rutele sub un prefix URI
Route::controller(PostController::class)->group($fn)
Grupează rutele către un controller
Route::fallback($fn)
Tratează rutele nepotrivite (404)
Controllere
10php artisan make:controller PostController --resource
Controller de resursă cu metode CRUD
public function __invoke(Request $request)
Controller invokable cu o singură acțiune
public function index() {}
Listează resurse (metoda resource)
public function store(Request $request) {}
Persistă o resursă nouă
public function show(Post $post) {}
Afișează o resursă (route model binding)
public function __construct(PostService $svc) {}
Injectează o dependență prin constructor
return view('posts.index', ['posts' => $posts])
Returnează un view Blade cu date
return response()->json($data)
Returnează un răspuns JSON
return redirect()->route('posts.index')
Redirecționează către o rută numită
return back()
Redirecționează către pagina anterioară
Eloquent ORM
14Post::all()
Obține fiecare înregistrare
Post::find($id)
Găsește o înregistrare după cheia primară
Post::where('active', true)->first()
Prima înregistrare care îndeplinește o condiție
Post::create(['title' => 'Hi'])
Mass-assign și persistă o înregistrare
$post->update(['title' => 'Edited'])
Actualizează un model existent
$post->delete()
Șterge o instanță de model
Post::firstOrCreate(['slug' => $slug])
Găsește sau creează o înregistrare potrivită
Post::updateOrCreate($attrs, $values)
Actualizează dacă e găsit, altfel creează
Post::with('author')->get()
Eager load o relație
public function comments() { return $this->hasMany(Comment::class); }
Relație unu-la-mulți
public function author() { return $this->belongsTo(User::class); }
Relație unu-la-mulți inversă
protected $fillable = ['title', 'body'];
Atribute mass-assignable
protected function casts(): array { return ['published_at' => 'datetime']; }
Cast-uri de atribute (metoda casts())
Post::onlyTrashed()->restore()
Restaurează înregistrările soft-deleted
Query builder
13DB::table('users')->get()
Obține toate rândurile dintr-un tabel
DB::table('users')->where('votes', '>', 100)->get()
Filtrează rândurile după o condiție
DB::table('users')->join('posts', 'users.id', '=', 'posts.user_id')
Inner join două tabele
DB::table('users')->orderBy('name')->get()
Ordonează rezultatele după o coloană
DB::table('orders')->groupBy('status')->get()
Grupează rândurile după o coloană
DB::table('users')->select('name', 'email')->get()
Selectează coloane specifice
DB::table('users')->insert(['name' => 'Sam'])
Inserează un rând nou
DB::table('users')->where('id', 1)->update(['votes' => 1])
Actualizează rândurile potrivite
DB::table('users')->pluck('email')
Obține o singură coloană ca o colecție
DB::table('users')->count()
Numără rândurile potrivite
DB::table('users')->where('id', 1)->exists()
Verifică dacă există rânduri
DB::table('users')->paginate(15)
Paginează rezultatele
DB::table('users')->chunk(100, $fn)
Procesează rezultatele în bucăți
Migrări și schemă
12Schema::create('posts', function (Blueprint $table) {})
Creează un tabel nou
$table->id()
Cheie primară auto-incrementată
$table->string('title')
Coloană VARCHAR
$table->integer('votes')
Coloană întreagă
$table->boolean('active')
Coloană booleană
$table->timestamps()
Coloanele created_at și updated_at
$table->foreignId('user_id')->constrained()
Cheie străină cu o constrângere
$table->string('note')->nullable()
Permite valori NULL
$table->boolean('active')->default(true)
Setează o valoare implicită
$table->index('slug')
Adaugă un index la o coloană
$table->unique('email')
Adaugă o constrângere de unicitate
$table->dropColumn('votes')
Șterge o coloană
Template-uri Blade
14@if ($ok) ... @elseif ($x) ... @else ... @endif
Randare condițională
@foreach ($posts as $post) ... @endforeach
Buclă peste o colecție
@forelse ($posts as $post) ... @empty ... @endforelse
Buclă cu o rezervă pentru caz gol
{{ $variable }}
Echo ieșire escapată
{!! $html !!}
Echo HTML brut neescapat
@extends('layouts.app')
Moștenește dintr-un layout
@section('content') ... @endsection
Definește o secțiune de layout
@yield('content')
Emite o secțiune într-un layout
@include('partials.nav')
Include un alt view
<x-alert type="error" />
Randează o componentă Blade
@csrf
Câmp de token CSRF pentru formulare
@auth ... @endauth
Afișează conținut utilizatorilor autentificați
@can('update', $post) ... @endcan
Verificare de gate de autorizare
{{ $loop->index }}
Variabilă de buclă în interiorul @foreach
Validare
12$request->validate(['title' => 'required'])
Validează datele cererii inline
'email' => 'required|email'
Regulă obligatoriu și email valid
'name' => 'required|max:255'
Obligatoriu cu o lungime maximă
'email' => 'unique:users,email'
Trebuie să fie unic într-un tabel
'age' => 'nullable|integer|min:18'
Întreg opțional cu un minim
'role' => ['required', Rule::in(['admin', 'user'])]
Restricționează la valori permise
php artisan make:request StorePostRequest
Generează o clasă Form Request
public function rules(): array { return [...]; }
Reguli de validare Form Request
public function authorize(): bool { return true; }
Autorizare Form Request
public function messages(): array { return [...]; }
Mesaje de validare personalizate
$validator = Validator::make($data, $rules)
Creează un validator manual
$request->validated()
Obține doar input-ul validat
Cereri și răspunsuri
10request()->input('name')
Obține o valoare de input
request()->query('page')
Obține o valoare de șir de interogare
request()->all()
Obține tot input-ul ca un array
request()->only(['name', 'email'])
Obține un subset al input-ului
request()->has('name')
Verifică dacă input-ul e prezent
response()->json(['ok' => true])
Returnează un răspuns JSON
redirect()->route('home')->with('status', 'Saved')
Redirecționează cu un mesaj flash
back()->withInput()
Redirecționează înapoi păstrând input-ul vechi
abort(404)
Aruncă o excepție HTTP
abort_if($user->banned, 403)
Abandonează condiționat cererea
Colecții
13$collection->map(fn ($x) => $x * 2)
Transformă fiecare element
$collection->filter(fn ($x) => $x > 0)
Păstrează elementele potrivite
$collection->each(fn ($x) => $x->save())
Rulează un callback per element
$collection->pluck('name')
Extrage o coloană
$collection->reduce(fn ($c, $x) => $c + $x, 0)
Reduce la o singură valoare
$collection->sortBy('created_at')
Sortează după o cheie
$collection->groupBy('status')
Grupează elementele după o cheie
$collection->where('active', true)
Filtrează după o pereche cheie/valoare
$collection->first()
Obține primul element
$collection->contains('name', 'Sam')
Verifică existența unui element potrivit
$collection->sum('price')
Adună o coloană
$collection->flatten()
Aplatizează colecțiile imbricate
$collection->toArray()
Convertește într-un array simplu
Auth și middleware
11Auth::user()
Obține utilizatorul autentificat
Auth::check()
Verifică dacă un utilizator e autentificat
Auth::id()
Obține ID-ul utilizatorului autentificat
Auth::login($user)
Autentifică un utilizator
Auth::logout()
Deconectează utilizatorul curent
auth()->user()
Helper pentru utilizatorul curent
Route::get('/home', $fn)->middleware('auth')
Protejează o rută cu auth
Gate::allows('update', $post)
Verifică un gate de autorizare
$user->can('update', $post)
Verifică o abilitate față de o policy
php artisan make:policy PostPolicy --model=Post
Generează o policy de autorizare
php artisan make:middleware EnsureTokenIsValid
Generează o clasă de middleware
Helper-e și diverse
12config('app.name')
Citește o valoare de config
env('APP_DEBUG', false)
Citește o variabilă de mediu
route('posts.show', $post)
Generează un URL către o rută numită
url('/dashboard')
Generează un URL complet calificat
asset('css/app.css')
URL pentru o resursă publică
old('email')
Obține input-ul flash vechi
now()->addDays(7)
Marcaj de timp Carbon curent
Str::slug('My Title')
Helper de șir (slugify)
collect([1, 2, 3])->sum()
Creează o colecție dintr-un array
cache()->remember('key', 60, $fn)
Pune o valoare în cache pentru o durată
dd($value)
Dump o valoare și oprește (die)
Storage::put('file.txt', $contents)
Scrie un fișier în storage
Nicio intrare nu corespunde cu „:q”.
Ai nevoie de ajutor?
Ai întâmpinat o problemă cu acest instrument? Spune-ne.