Ejemplos de Laravel

 

www.onlinetis.com

Aquí tienes ejemplos de conceptos clave en Laravel, un popular framework de PHP para desarrollar aplicaciones web.


1. Migraciones (bases de datos)

Las migraciones en Laravel son como un control de versiones para tu base de datos. Permiten crear, modificar o eliminar tablas de forma programática. Este ejemplo crea una tabla posts con columnas para el título, el contenido y una clave foránea para el autor.

database/migrations/YYYY_MM_DD_HHMMSS_create_posts_table.php

PHP
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->foreignId('user_id')->constrained()->onDelete('cascade');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}

Para ejecutar esta migración, usarías el comando php artisan migrate en tu terminal.


2. Modelos y Eloquent

Eloquent es el ORM (Object-Relational Mapper) de Laravel. Un modelo de Eloquent representa una tabla en tu base de datos. Este ejemplo define un modelo Post y la relación con el modelo User.

app/Models/Post.php

PHP
<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Post extends Model
{
    use HasFactory;

    // Define los campos que se pueden asignar masivamente
    protected $fillable = ['title', 'content', 'user_id'];

    /**
     * Un post pertenece a un usuario.
     */
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}

3. Rutas y Controladores

Las rutas de Laravel dirigen las peticiones HTTP a la lógica de la aplicación. Los controladores son clases que manejan la lógica de negocio para una o más rutas.

routes/web.php (Ruta)

PHP
<?php

use Illuminate\Support\Facades\Route;
use App\Http\Controllers\PostController;

// Muestra todos los posts
Route::get('/posts', [PostController::class, 'index']);

// Muestra un post específico
Route::get('/posts/{id}', [PostController::class, 'show']);

app/Http/Controllers/PostController.php (Controlador)

PHP
<?php

namespace App\Http\Controllers;

use App\Models\Post;
use Illuminate\Http\Request;

class PostController extends Controller
{
    public function index()
    {
        $posts = Post::all(); // Obtiene todos los posts de la base de datos
        return view('posts.index', ['posts' => $posts]); // Pasa los posts a la vista
    }

    public function show($id)
    {
        $post = Post::findOrFail($id); // Busca un post por su ID
        return view('posts.show', ['post' => $post]); // Pasa el post a la vista
    }
}

4. Vistas y Blade

Blade es el motor de plantillas de Laravel. Las vistas son archivos que contienen el HTML de tu aplicación y pueden mostrar datos dinámicamente usando la sintaxis de Blade.

resources/views/posts/index.blade.php

HTML
<!DOCTYPE html>
<html>
<head>
    <title>Posts</title>
</head>
<body>
    <h1>Lista de Posts</h1>
    <ul>
        @foreach ($posts as $post)
            <li>
                <a href="/posts/{{ $post->id }}">{{ $post->title }}</a>
            </li>
        @endforeach
    </ul>
</body>
</html>

La sintaxis @foreach de Blade te permite iterar sobre un array, y {{ $post->id }} muestra el valor de la propiedad id del objeto $post.

Entradas populares de este blog

Ciberseguridad y hacking con Whatweb

Como robar contraseñas haciendo un phishing web

Arsenal software hacking NFC