Todas las herramientas
Gratis

Una referencia de Laravel imprimible y con búsqueda — Artisan, enrutamiento, Eloquent, el constructor de consultas, migraciones, Blade, validación y colecciones. Gratis.

CLI de Artisan

14
php artisan serve
Iniciar el servidor de desarrollo local
php artisan make:model Post -mcr
Modelo con migración, controlador y resource
php artisan make:controller PostController
Generar una clase de controlador nueva
php artisan make:migration create_posts_table
Crear un archivo de migración nuevo
php artisan migrate
Ejecutar las migraciones de base de datos pendientes
php artisan migrate:fresh --seed
Eliminar todas las tablas, volver a migrar y sembrar
php artisan db:seed
Ejecutar los seeders de la base de datos
php artisan tinker
Abrir un shell REPL interactivo
php artisan route:list
Listar todas las rutas registradas
php artisan optimize
Cachear la configuración, las rutas y las vistas
php artisan queue:work
Procesar los trabajos de la cola
php artisan schedule:work
Ejecutar el scheduler en primer plano
php artisan storage:link
Crear un symlink de storage a la ruta pública
php artisan key:generate
Generar la clave de la aplicación

Enrutamiento

13
Route::get('/users', [UserController::class, 'index'])
Definir una ruta GET hacia un controlador
Route::post('/users', [UserController::class, 'store'])
Definir una ruta POST
Route::put('/users/{user}', [UserController::class, 'update'])
Definir una ruta PUT
Route::patch('/users/{user}', [UserController::class, 'update'])
Definir una ruta PATCH
Route::delete('/users/{user}', [UserController::class, 'destroy'])
Definir una ruta DELETE
Route::get('/users/{id}', $fn)
Parámetro de ruta obligatorio
Route::get('/users/{id?}', $fn)
Parámetro de ruta opcional
Route::get('/profile', $fn)->name('profile')
Nombrar una ruta para la generación de URLs
Route::get('/admin', $fn)->middleware('auth')
Asociar middleware a una ruta
Route::resource('posts', PostController::class)
Registrar rutas de recurso RESTful
Route::prefix('admin')->group(function () {})
Agrupar rutas bajo un prefijo de URI
Route::controller(PostController::class)->group($fn)
Agrupar rutas hacia un solo controlador
Route::fallback($fn)
Manejar las rutas no coincidentes (404)

Controladores

10
php artisan make:controller PostController --resource
Controlador de recurso con métodos CRUD
public function __invoke(Request $request)
Controlador invocable de acción única
public function index() {}
Listar recursos (método index del resource)
public function store(Request $request) {}
Persistir un recurso nuevo
public function show(Post $post) {}
Mostrar un recurso (route model binding)
public function __construct(PostService $svc) {}
Inyectar una dependencia mediante el constructor
return view('posts.index', ['posts' => $posts])
Devolver una vista Blade con datos
return response()->json($data)
Devolver una respuesta JSON
return redirect()->route('posts.index')
Redirigir a una ruta con nombre
return back()
Redirigir a la página anterior

ORM Eloquent

14
Post::all()
Obtener todos los registros
Post::find($id)
Buscar un registro por clave primaria
Post::where('active', true)->first()
Primer registro que coincide con una condición
Post::create(['title' => 'Hi'])
Asignar en masa y persistir un registro
$post->update(['title' => 'Edited'])
Actualizar un modelo existente
$post->delete()
Eliminar una instancia de modelo
Post::firstOrCreate(['slug' => $slug])
Buscar o crear un registro coincidente
Post::updateOrCreate($attrs, $values)
Actualizar si existe, si no, crear
Post::with('author')->get()
Cargar una relación de forma anticipada (eager)
public function comments() { return $this->hasMany(Comment::class); }
Relación uno a muchos
public function author() { return $this->belongsTo(User::class); }
Relación inversa de uno a muchos
protected $fillable = ['title', 'body'];
Atributos asignables en masa
protected function casts(): array { return ['published_at' => 'datetime']; }
Casts de atributos (método casts())
Post::onlyTrashed()->restore()
Restaurar registros eliminados con soft delete

Constructor de consultas

13
DB::table('users')->get()
Obtener todas las filas de una tabla
DB::table('users')->where('votes', '>', 100)->get()
Filtrar filas por una condición
DB::table('users')->join('posts', 'users.id', '=', 'posts.user_id')
Hacer inner join de dos tablas
DB::table('users')->orderBy('name')->get()
Ordenar los resultados por una columna
DB::table('orders')->groupBy('status')->get()
Agrupar filas por una columna
DB::table('users')->select('name', 'email')->get()
Selecciona columnas específicas
DB::table('users')->insert(['name' => 'Sam'])
Insertar una fila nueva
DB::table('users')->where('id', 1)->update(['votes' => 1])
Actualiza las filas que coinciden
DB::table('users')->pluck('email')
Obtener una sola columna como colección
DB::table('users')->count()
Contar las filas coincidentes
DB::table('users')->where('id', 1)->exists()
Comprobar si existen filas
DB::table('users')->paginate(15)
Paginar los resultados
DB::table('users')->chunk(100, $fn)
Procesar los resultados en bloques

Migraciones y esquema

12
Schema::create('posts', function (Blueprint $table) {})
Crea una tabla nueva
$table->id()
Clave primaria autoincremental
$table->string('title')
Columna VARCHAR
$table->integer('votes')
Columna entera
$table->boolean('active')
Columna booleana
$table->timestamps()
Columnas created_at y updated_at
$table->foreignId('user_id')->constrained()
Clave foránea con una restricción
$table->string('note')->nullable()
Permitir valores NULL
$table->boolean('active')->default(true)
Establecer un valor por defecto
$table->index('slug')
Añadir un índice a una columna
$table->unique('email')
Añadir una restricción única
$table->dropColumn('votes')
Eliminar una columna

Plantillas Blade

14
@if ($ok) ... @elseif ($x) ... @else ... @endif
Renderizado condicional
@foreach ($posts as $post) ... @endforeach
Recorrer una colección
@forelse ($posts as $post) ... @empty ... @endforelse
Bucle con un respaldo para vacío
{{ $variable }}
Imprimir salida escapada
{!! $html !!}
Imprimir HTML en bruto sin escapar
@extends('layouts.app')
Heredar de un layout
@section('content') ... @endsection
Definir una sección de layout
@yield('content')
Emitir una sección en un layout
@include('partials.nav')
Incluir otra vista
<x-alert type="error" />
Renderizar un componente Blade
@csrf
Campo de token CSRF para formularios
@auth ... @endauth
Mostrar contenido a usuarios autenticados
@can('update', $post) ... @endcan
Comprobación de gate de autorización
{{ $loop->index }}
Variable de bucle dentro de @foreach

Validación

12
$request->validate(['title' => 'required'])
Validar los datos de la petición inline
'email' => 'required|email'
Regla de email obligatorio y válido
'name' => 'required|max:255'
Obligatorio con una longitud máxima
'email' => 'unique:users,email'
Debe ser único en una tabla
'age' => 'nullable|integer|min:18'
Entero opcional con un mínimo
'role' => ['required', Rule::in(['admin', 'user'])]
Restringir a valores permitidos
php artisan make:request StorePostRequest
Generar una clase Form Request
public function rules(): array { return [...]; }
Reglas de validación de Form Request
public function authorize(): bool { return true; }
Autorización de Form Request
public function messages(): array { return [...]; }
Mensajes de validación personalizados
$validator = Validator::make($data, $rules)
Crear un validador manualmente
$request->validated()
Obtener solo la entrada validada

Peticiones y respuestas

10
request()->input('name')
Recuperar un valor de entrada
request()->query('page')
Recuperar un valor de la cadena de consulta
request()->all()
Obtener toda la entrada como un array
request()->only(['name', 'email'])
Obtener un subconjunto de la entrada
request()->has('name')
Comprobar si la entrada está presente
response()->json(['ok' => true])
Devolver una respuesta JSON
redirect()->route('home')->with('status', 'Saved')
Redirigir con un mensaje flash
back()->withInput()
Redirigir atrás conservando la entrada anterior
abort(404)
Lanzar una excepción HTTP
abort_if($user->banned, 403)
Abortar la petición condicionalmente

Colecciones

13
$collection->map(fn ($x) => $x * 2)
Transformar cada elemento
$collection->filter(fn ($x) => $x > 0)
Conservar los elementos coincidentes
$collection->each(fn ($x) => $x->save())
Ejecutar un callback por elemento
$collection->pluck('name')
Extraer una columna
$collection->reduce(fn ($c, $x) => $c + $x, 0)
Reduce a un único valor
$collection->sortBy('created_at')
Ordenar por una clave
$collection->groupBy('status')
Agrupar elementos por una clave
$collection->where('active', true)
Filtrar por un par clave/valor
$collection->first()
Obtener el primer elemento
$collection->contains('name', 'Sam')
Comprobar si hay un elemento coincidente
$collection->sum('price')
Sumar una columna
$collection->flatten()
Aplanar colecciones anidadas
$collection->toArray()
Convertir a un array simple

Auth y middleware

11
Auth::user()
Obtener el usuario autenticado
Auth::check()
Comprobar si un usuario ha iniciado sesión
Auth::id()
Obtener el ID del usuario autenticado
Auth::login($user)
Iniciar sesión de un usuario
Auth::logout()
Cerrar la sesión del usuario actual
auth()->user()
Ayudante para el usuario actual
Route::get('/home', $fn)->middleware('auth')
Proteger una ruta con auth
Gate::allows('update', $post)
Comprobar un gate de autorización
$user->can('update', $post)
Comprobar una habilidad contra una policy
php artisan make:policy PostPolicy --model=Post
Generar una policy de autorización
php artisan make:middleware EnsureTokenIsValid
Generar una clase de middleware

Ayudantes y varios

12
config('app.name')
Leer un valor de configuración
env('APP_DEBUG', false)
Leer una variable de entorno
route('posts.show', $post)
Generar una URL hacia una ruta con nombre
url('/dashboard')
Generar una URL totalmente cualificada
asset('css/app.css')
URL para un recurso público
old('email')
Recuperar la entrada anterior guardada en flash
now()->addDays(7)
Marca de tiempo Carbon actual
Str::slug('My Title')
Ayudante de cadenas (slugify)
collect([1, 2, 3])->sum()
Crear una colección a partir de un array
cache()->remember('key', 60, $fn)
Cachear un valor durante un periodo
dd($value)
Volcar un valor y terminar
Storage::put('file.txt', $contents)
Escribir un archivo en storage

Ninguna entrada coincide con “:q”.


¿Necesitas ayuda?
¿Encontraste un problema con esta herramienta? Avísanos.
Informar de un problema

Añade esta herramienta gratuita a tu propio sitio web: copia y pega el código de abajo.