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.

Kesimpulan

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.