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.