Untuk mengedit data artikel blog dalam aplikasi Laravel, kamu perlu melakukan beberapa langkah berikut:
1. Definisikan Route untuk Menampilkan Form Edit dan Memperbarui Artikel
Tambahkan route untuk menampilkan form edit dan memperbarui artikel di file routes/web.php:
use App\Http\Controllers\ArticleController;
Route::get('/articles/{id}/edit', [ArticleController::class, 'edit'])->name('articles.edit');
Route::put('/articles/{id}', [ArticleController::class, 'update'])->name('articles.update');
```
### 2. Implementasikan Method `edit` dan `update` di Controller
Edit file `app/Http/Controllers/ArticleController.php` untuk menambahkan method `edit` dan `update`:
```php
namespace App\Http\Controllers;
use App\Models\Article;
use Illuminate\Http\Request;
class ArticleController extends Controller
{
// Menampilkan daftar artikel
public function index()
{
$articles = Article::all();
return view('articles.index', compact('articles'));
}
// Menampilkan form untuk membuat artikel baru
public function create()
{
return view('articles.create');
}
// Menyimpan artikel baru ke database
public function store(Request $request)
{
$request->validate([
'title' => 'required|string|max:255',
'content' => 'required|string',
]);
Article::create($request->all());
return redirect()->route('articles.index')
->with('success', 'Article created successfully.');
}
// Menampilkan detail artikel
public function show($id)
{
$article = Article::findOrFail($id);
return view('articles.show', compact('article'));
}
// Menampilkan form untuk mengedit artikel
public function edit($id)
{
$article = Article::findOrFail($id);
return view('articles.edit', compact('article'));
}
// Memperbarui artikel di database
public function update(Request $request, $id)
{
$request->validate([
'title' => 'required|string|max:255',
'content' => 'required|string',
]);
$article = Article::findOrFail($id);
$article->update($request->all());
return redirect()->route('articles.index')
->with('success', 'Article updated successfully.');
}
}
3. Buat View untuk Form Edit Artikel
Buat file baru resources/views/articles/edit.blade.php untuk menampilkan form edit artikel:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Edit Article</title>
</head>
<body>
<h1>Edit Article</h1>
<form action="{{ route('articles.update', $article->id) }}" method="POST">
@csrf
@method('PUT')
<div>
<label for="title">Title:</label>
<input type="text" id="title" name="title" value="{{ $article->title }}" required>
</div>
<div>
<label for="content">Content:</label>
<textarea id="content" name="content" required>{{ $article->content }}</textarea>
</div>
<button type="submit">Update Article</button>
</form>
</body>
</html>
4. Tambahkan Link ke Form Edit di Daftar Artikel
Edit file resources/views/articles/index.blade.php untuk menambahkan link ke form edit artikel:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Articles</title>
</head>
<body>
<h1>Articles</h1>
<a href="{{ route('articles.create') }}">Create New Article</a>
<ul>
@foreach($articles as $article)
<li>
<h2><a href="{{ route('articles.show', $article->id) }}">{{ $article->title }}</a></h2>
<p>{{ $article->content }}</p>
<small>Published at: {{ $article->created_at }}</small>
<br>
<a href="{{ route('articles.edit', $article->id) }}">Edit</a>
</li>
@endforeach
</ul>
</body>
</html>
5. Jalankan Server Laravel
Jalankan server Laravel jika belum berjalan:
php artisan serve
6. Akses Form Edit dan Perbarui Artikel di Browser
Buka browser dan akses URL http://localhost:8000/articles/{id}/edit (gantilah {id} dengan ID artikel yang ingin kamu edit) untuk melihat form edit artikel dan memperbarui data artikel tersebut.
Dengan mengikuti langkah-langkah di atas, kamu telah berhasil mengimplementasikan fitur untuk mengedit data artikel blog dalam aplikasi Laravel. Berikut adalah ringkasan langkah-langkah yang telah dilakukan:
- Menambahkan route untuk menampilkan form edit dan memperbarui artikel.
- Mengimplementasikan method edit dan update di controller untuk mengambil data artikel dan memperbaruinya di database.
- Membuat view edit.blade.php untuk menampilkan form edit artikel.
- Menambahkan link ke form edit di daftar artikel.
- Menjalankan server Laravel dan mengakses form edit artikel di browser.
Sekarang, kamu dapat mengedit data artikel yang ada di database dengan mengakses form edit dan menyimpan perubahan yang dilakukan.