Langkah 7: Model dan Migration
Model adalah representasi dari tabel dalam database. Laravel menyediakan fitur migration untuk mengatur skema database. Anda dapat membuat model dengan perintah berikut:
php artisan make:model NamaModel
Misalnya, untuk membuat model "Article":
php artisan make:model Article
Selanjutnya, Anda dapat membuat migration untuk membuat tabel "articles" di database:
php artisan make:migration create_articles_table
Buka file migration yang baru saja dibuat (biasanya terletak di direktori database/migrations) dan tentukan kolom yang ingin Anda tambahkan ke tabel:
// database/migrations/2023_07_20_123456_create_articles_table.php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreateArticlesTable extends Migration
{
public function up()
{
Schema::create('articles', function (Blueprint $table) {
$table->id();
$table->string('title');
$table->text('content');
$table->timestamps();
});
}
public function down()
{
Schema::dropIfExists('articles');
}
}
Setelah menentukan skema tabel, jalankan migration untuk menerapkannya ke database:
php artisan migrate
Langkah 8: CRUD (Create, Read, Update, Delete) Artikel
Sekarang, mari kita implementasikan fitur CRUD untuk artikel.
Create Artikel:
Tambahkan fungsi di controller untuk menampilkan form tambah artikel dan menyimpan data artikel baru ke database.
// app/Http/Controllers/ArticleController.php
use App\Models\Article;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
// ...
public function create()
{
return view('articles.create');
}
public function store(Request $request)
{
$request->validate([
'title' => 'required',
'content' => 'required',
]);
Article::create([
'title' => $request->input('title'),
'content' => $request->input('content'),
]);
return redirect()->route('articles.index')->with('success', 'Article created successfully');
}
}
Buatlah view untuk form tambah artikel:
<!-- resources/views/articles/create.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>Add New Article</title>
</head>
<body>
<h1>Add New Article</h1>
<form action="{{ route('articles.store') }}" method="POST">
@csrf
<label for="title">Title:</label>
<input type="text" id="title" name="title" required>
<label for="content">Content:</label>
<textarea id="content" name="content" rows="4" required></textarea>
<button type="submit">Save Article</button>
</form>
</body>
</html>
Read Artikel:
Tambahkan fungsi di controller untuk menampilkan daftar artikel dan detail artikel.
// app/Http/Controllers/ArticleController.php
use App\Models\Article;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
// ...
public function index()
{
$articles = Article::all();
return view('articles.index', compact('articles'));
}
public function show(Article $article)
{
return view('articles.show', compact('article'));
}
}
Buatlah view untuk daftar artikel:
<!-- resources/views/articles/index.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>Articles</title>
</head>
<body>
<h1>Articles</h1>
<ul>
@foreach ($articles as $article)
<li><a href="{{ route('articles.show', $article) }}">{{ $article->title }}</a></li>
@endforeach
</ul>
</body>
</html>
Buatlah view untuk detail artikel:
<!-- resources/views/articles/show.blade.php -->
<!DOCTYPE html>
<html>
<head>
<title>{{ $article->title }}</title>
</head>
<body>
<h1>{{ $article->title }}</h1>
<p>{{ $article->content }}</p>
</body>
</html>
Kesimpulan:
Dalam tutorial ini, Anda telah mempelajari langkah-langkah dasar dalam memulai pengembangan aplikasi web dengan Laravel. Kami telah meliputi instalasi Laravel, pengaturan routing, menggunakan view dan Blade templating, membuat controller, model, dan migration untuk database, serta mengimplementasikan fitur CRUD untuk artikel. Laravel menyediakan banyak fitur yang kuat dan efisien untuk pengembangan web yang lebih mudah dan cepat. Lanjutkan untuk menjelajahi fitur-fitur lebih lanjut yang ditawarkan oleh Laravel, seperti middleware, autentikasi, validasi form, dan banyak lagi. Semoga tutorial ini membantu Anda memulai perjalanan Anda dalam mengembangkan aplikasi web yang tangguh dan efisien dengan Laravel!