Simple Blog dengan Laravel - Part I

 

Pada artikel ini menggunakan Laravel versi 8

Langkah - langkah membuat program kecil dengan Laravel :

1. Install Laravel

untuk menginstall Laravel 8 ada 2 cara yaitu : 
  • Dengan Laravel Installer ,  ketik pada command : 
laravel new blog
  • Dengan composer.  
composer create-project --prefer-dist laravel/laravel blog


2.  Konfigurasi Database

Aktifkan web server seperti menggunakan XAMPP  , kemudian buat database MySQL menggunakan phpmyadmin dengan nama dbblog,  Setelah itu, buka file .env yang berada di direktori blog/.env.  ganti nama database, root, password lainnya yang sesuai dengan web server digunakan. 

DB_CONNECTION=mysql 
DB_HOST=127.0.0.1 
DB_PORT=3306 
DB_DATABASE=dbblog
DB_USERNAME=root 
DB_PASSWORD=

setelah itu simpan perubahan tersebut/

catatan : bisa membaca artikel tentang XAMPP dan Phpmyadmin

Install XAMPP di Windows  / Install XAMPP di Linux cara menginstall dan mengaktifkan
Membuat Database di XAMPP cara membuat database dengan phpmyadmin


3.  Migration Database dan Model 

Buat table posts. ketik : php artisan make:model Post --migration 

Setelah itu buka folder migrations di direktori blog/database/migrations. Lalu ubah file yang ada di folder migration tersebut : 

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
class CreatePostsTable extends Migration {
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up() {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->text('content');
            $table->timestamps();
        });
    }
    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down() {
        Schema::dropIfExists('posts');
    }

Setelah itu jalankan perintah : php artisan migrate sintak tersebut menampilkan kolom-kolom yang telah dibuat pada database.


4.  Resource Controller

Kemudian buat controller. dengan ketik sintak dibawah untuk membuat resource controller: 

php artisan make:controller PostController --resource

Setelah itu, akan terbentuk file baru dengan nama PostController.php di dalam direktori app/Http/Controllers. Pada file tersebut memiliki beberapa fungsi : 

  • index(),
  • create(),
  • store(),
  • show(),
  • edit(), dan
  • destroy()   
Kemudian modifikasi isi PostController tersebut menjadi seperti dibawah : 

namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Post;

class PostController extends Controller
{
    public function index()
    {
        $posts = Post::latest()->paginate(5);

        return view('posts.index',compact('posts'))
            ->with('i', (request()->input('page', 1) - 1) * 5);
    }

    public function create()
    {
        return view('posts.create');
    }

    public function store(Request $request)
    {
        $request->validate([
            'title' => 'required',
            'content' => 'required',
        ]);

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

        return redirect()->route('posts.index')
                        ->with('success','Post created successfully.');
    }

    public function show(Post $post)
    {
        return view('posts.show',compact('post'));
    }

    public function edit(Post $post)
    {
        return view('posts.edit',compact('post'));
    }

    public function update(Request $request, Post $post)
    {
        $request->validate([
            'title' => 'required',
            'content' => 'required',
        ]);

        $post->update($request->all());

        return redirect()->route('posts.index')
                        ->with('success','Post updated successfully');
    }

    public function destroy(Post $post)
    {
        $post->delete();

        return redirect()->route('posts.index')
                        ->with('success','Post deleted successfully');
    }
}

kemudian simpan perubahan tersebut/


5.  Modifikasi Model

Setelah itu modifikasi model seperti dibawah ini :

namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class Post extends Model {
    use HasFactory;
    protected $fillable = ['title', 'content'];
}


6.  Menambahkan Route 

Kemudian tambahkan route untuk mengakses resource controller Post. Buka routes/web.php lalu tambahkan: 

use App\Http\Controllers\PostController;
Route::resource('posts', PostController::class);

Setelah itu simpan 

Catatan : 

Silahkan baca lanjutannya pada tahap selanjutnya di artikel Simple Blog dengan Laravel - Part II