Laravel ist ein mächtiges PHP-Framework, das den Entwicklungsprozess beschleunigt und dir sauberen, wartbaren Code bietet. Dieses Tutorial führt dich Schritt für Schritt durch den Aufbau eines einfachen Blogs.

Voraussetzungen

• PHP 8.1 oder höher

• Composer (PHP-Paketmanager)

• Ein MySQL-Datenbankserver

• Grundkenntnisse in PHP und MVC

Schritt 1: Laravel installieren

Installiere Laravel über Composer:

composer create-project laravel/laravel blog

Wechsle in das Projektverzeichnis:

cd blog

Starte den eingebauten Entwicklungsserver:

php artisan serve

Besuche http://127.0.0.1:8000 in deinem Browser. Du solltest die Laravel-Willkommensseite sehen.

Schritt 2: Datenbank einrichten

1. Erstelle eine neue MySQL-Datenbank für deinen Blog.

2. Aktualisiere die .env-Datei im Laravel-Projekt:

DB_CONNECTION=mysql

DB_HOST=127.0.0.1

DB_PORT=3306

DB_DATABASE=blog

DB_USERNAME=dein-benutzername

DB_PASSWORD=dein-passwort

3. Teste die Verbindung mit:

php artisan migrate

Schritt 3: Datenbank-Migration erstellen

Erstelle eine Tabelle für Blogposts:

php artisan make:migration create_posts_table

Öffne die erstellte Migrationsdatei in „database/migrations/“ und füge die folgenden Spalten hinzu:

public function up()

{

    Schema::create('posts', function (Blueprint $table) {

        $table->id();

        $table->string('title');

        $table->text('body');

        $table->timestamps();

    });

}

Führe die Migration aus:

php artisan migrate

Schritt 4: Eloquent Model erstellen

Erstelle ein Modell für Blogposts:

php artisan make:model Post

Das Modell Post repräsentiert die Tabelle posts. Du kannst es in „app/Models/Post.php“ anpassen, falls nötig.

Schritt 5: Controller und Routen erstellen

Erstelle einen Controller:

php artisan make:controller PostController

Füge im Controller grundlegende Funktionen hinzu:

namespace App\Http\Controllers;

use App\Models\Post;

use Illuminate\Http\Request;

class PostController extends Controller

{

    public function index()

    {

        $posts = Post::all();

        return view('posts.index', compact('posts'));

    }

    public function create()

    {

        return view('posts.create');

    }

    public function store(Request $request)

    {

        $request->validate([

            'title' => 'required',

            'body' => 'required',

        ]);

        Post::create($request->all());

        return redirect()->route('posts.index');

    }

}

Schritt 6: Views erstellen

1. Posts-Index-Seite (resources/views/posts/index.blade.php):

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Blog</title>

</head>

<body>

    <h1>Blog Posts</h1>

    <a href="{{ route('posts.create') }}">Neuen Post erstellen</a>

    <ul>

        @foreach ($posts as $post)

            <li>

                <h2>{{ $post->title }}</h2>

                <p>{{ $post->body }}</p>

            </li>

        @endforeach

    </ul>

</body>

</html>

2. Post-Erstellen-Seite (resources/views/posts/create.blade.php):

<!DOCTYPE html>

<html lang="en">

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>Post erstellen</title>

</head>

<body>

    <h1>Neuen Blog Post erstellen</h1>

    <form action="{{ route('posts.store') }}" method="POST">

        @csrf

        <label for="title">Titel:</label>

        <input type="text" id="title" name="title" required>

        <label for="body">Inhalt:</label>

        <textarea id="body" name="body" required></textarea>

        <button type="submit">Speichern</button>

    </form>

</body>

</html>

Schritt 7: Routen definieren

Definiere die Routen in „routes/web.php“:

use App\Http\Controllers\PostController;

Route::get('/posts', [PostController::class, 'index'])->name('posts.index');

Route::get('/posts/create', [PostController::class, 'create'])->name('posts.create');

Route::post('/posts', [PostController::class, 'store'])->name('posts.store');

Schritt 8: Testen

• Besuche /posts, um alle Blogposts anzuzeigen.

• Klicke auf „Neuen Post erstellen“, um einen neuen Blogpost hinzuzufügen.

Das ist dein erster einfacher Blog mit Laravel! Du kannst das Projekt erweitern, z. B. mit einer Authentifizierung, Kommentar-Funktion oder einem Admin-Panel.