Kali ini saya akan membuat crud pada Laravel 10 untuk cara penginstalannya bisa disimak di blog.aitc.co.id/cara membuat login dan register dilaravel 10

Cara CRUD di Laravel 10

1. Membuat tabel data crud (migration)

Disini saya akan menggunakan tabel yang berisi data mahasiswa. Lokasi file: app/models/mahasiswa.php

Dengan kolom nrp, nama, alamat dan id sebagai primary key nya

Code:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;

use Illuminate\Database\Eloquent\Model;

class Mahasiswa extends Model

{

    use HasFactory;

    protected $table="mahasiswas";

    protected $primarykey = "id";

    protected $fillable = ["nrp","nama","alamat"];

}

Kemudian beri perintah php artisan make:migration create_mahasiswa_table --create=mahasiswa di terminal

Membuat tabel. Lokasi file: database/migration/mahasiswa_table

Code:

<?php

use Illuminate\Database\Migrations\Migration;

use Illuminate\Database\Schema\Blueprint;

use Illuminate\Support\Facades\Schema;

return new class extends Migration

{

    /**

     * Run the migrations.

     *

     * @return void

     */

    public function up()

    {

        Schema::create('mahasiswas', function (Blueprint $table) {

            $table->id();

            $table->string('nrp',12);

            $table->string('nama',100);

            $table->string('alamat',200);

            $table->timestamps();

        });

    }

    /**

     * Reverse the migrations.

     *

     * @return void

     */

    public function down()

    {

        Schema::dropIfExists('mahasiswas');

    }

};

Kemudian beri perintah php artisan migrate di terminal:

Tampilan database :

2. Membuat controller dan model

Pada langkah ini, sekarang kita harus membuat resource controller baru sebagai MahasiswaController. Dengan memberikan perintah php artisan make:controller MahasiswaController --resource --model=Mahasiswa di terminal. Lokasi file: app > Http > Controllers > MahasiswaController.php.

Dalam pengontrol ini akan membuat tujuh metode secara default sebagai metode di bawah ini:

  1. Index
  2. Create
  3. store
  4. edit
  5. update
  6. destroy

Code:

<?php

namespace App\Http\Controllers;

use App\Models\Mahasiswa;
use App\Http\Requests\StoreMahasiswaRequest;
use App\Http\Requests\UpdateMahasiswaRequest;
use Illuminate\Http\Request;
class MahasiswaController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $dtmhs=Mahasiswa::all();
        return view('data_mhs',compact('dtmhs'),['title'=>'data mahasiswa'])
        ->with('i', (request()->input('page', 1) - 1) * 5);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
        return view('inputdata',['title'=>'input mahasiswa']);
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \App\Http\Requests\StoreMahasiswaRequest  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {
        //dd($request->all());
        Mahasiswa::create([
            'nrp'=> $request->nrp,
            'nama'=> $request->nama,
            'alamat'=> $request->alamat,
        ]);
        return redirect('/');
    }

    /**
     * Display the specified resource.
     *
     * @param  \App\Models\Mahasiswa  $mahasiswa
     * @return \Illuminate\Http\Response
     */
    public function show(Mahasiswa $mahasiswa)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  \App\Models\Mahasiswa  $mahasiswa
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        $dtmhs=Mahasiswa::findorfail($id);
        return view('editdata',compact('dtmhs'),['title'=>'Halaman Edit']);
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \App\Http\Requests\UpdateMahasiswaRequest  $request
     * @param  \App\Models\Mahasiswa  $mahasiswa
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        $dtmhs=Mahasiswa::findorfail($id);
        $dtmhs->update($request->all());
        return redirect('/');
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  \App\Models\Mahasiswa  $mahasiswa
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        $dtmhs=Mahasiswa::findorfail($id);
        $dtmhs->delete();
        return back();
    }
}

3. Menambahkan Resource Route

Lokasi file: Routes/Web

Code:

<?php

use Illuminate\Support\Facades\Route;

use App\Http\Controllers\MahasiswaController;

/*

|--------------------------------------------------------------------------

| Web Routes

|--------------------------------------------------------------------------

|

| Here is where you can register web routes for your application. These

| routes are loaded by the RouteServiceProvider within a group which

| contains the "web" middleware group. Now create something great!

|

*/

Route::get('/',[MahasiswaController::class,'index'])->name('datamahasiswa');

Route::get('/inputdata',[MahasiswaController::class,'create'])->name('inputdata');

Route::post('/simpandata',[MahasiswaController::class,'store'])->name('simpandata');

Route::get('/edit/{id}',[MahasiswaController::class,'edit'])->name('edit');

Route::post('/updatedata/{id}',[MahasiswaController::class,'update'])->name('updatedata');

Route::get('/hapus/{id}',[MahasiswaController::class,'destroy'])->name('hapus');

4. Menambahkan file blade

pada bagian ini merupakan langkah untuk membuat tampilan project yang telah dibuat

Lokasi file : resources/view

Layout.blade.php

<!DOCTYPE html>

<html>

<head>

    <title>Laravel 10 CRUD Application - ItSolutionStuff.com</title>

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet">

</head>

<body>

<div class="container">

    @yield('content')

</div>

</body>

</html>

Data_mhs.blade.php

@extends('layout')

@section('content')

    <div class="row">

        <div class="col-lg-12 margin-tb">

            <div class="pull-left">

                <h2>Laravel 10 CRUD by aitc</h2>

            </div>

            <div class="pull-right">

                <a class="btn btn-success" href="{{ route('inputdata') }}"> Tambah Mahasiswa Baru</a>

            </div>

        </div>

    </div>

    @if ($message = Session::get('success'))

        <div class="alert alert-success">

            <p>{{ $message }}</p>

        </div>

    @endif

    <table class="table table-bordered">

        <tr>

            <th>No</th>

            <th>Nim</th>

            <th>Nama</th>

            <th>Alamat</th>

            <th width="280px">Action</th>

        </tr>

        @foreach ($dtmhs as $item)

        <tr>

            <td>{{ ++$i }}</td>

            <td>{{ $item->nrp }}</td>

            <td>{{ $item->nama }}</td>

            <td>{{ $item->alamat }}</td>

            <td>

                <form action="{{ route('hapus',$item->id) }}" method="POST">

                    <a class="btn btn-primary" href="{{ route('edit',$item->id) }}">Edit</a>

                    <a class="btn btn-danger" href="{{ route('hapus',$item->id) }}">Hapus</a>

                </form>

            </td>

        </tr>

        @endforeach

    </table>

@endsection

Inputdata.blade.php

@extends('layout')

@section('content')

<div class="row">

    <div class="col-lg-12 margin-tb">

        <div class="pull-left">

            <h2>Tambah Mahasiswa baru</h2>

        </div>

        <div class="pull-right">

            <a class="btn btn-primary" href="{{ route('datamahasiswa') }}"> Kembali</a>

        </div>

    </div>

</div>

@if ($errors->any())

    <div class="alert alert-danger">

        <strong>Whoops!</strong> Ada beberapa masalah terkait beberapa data yang anda masukkan.<br><br>

        <ul>

            @foreach ($errors->all() as $error)

                <li>{{ $error }}</li>

            @endforeach

        </ul>

    </div>

@endif

<form action="{{ route('simpandata') }}" method="POST">

    @csrf

     <div class="row">

        <div class="col-xs-12 col-sm-12 col-md-12">

            <div class="form-group">

                <strong>Nim:</strong>

                <input type="text" name="nrp" class="form-control" placeholder="Nim">

            </div>

        </div>

        <div class="col-xs-12 col-sm-12 col-md-12">

            <div class="form-group">

                <strong>Nama:</strong>

                <input type="text" name="nama" class="form-control" placeholder="Nama">

            </div>

        </div>

        <div class="col-xs-12 col-sm-12 col-md-12">

            <div class="form-group">

                <strong>Alamat:</strong>

                <input type="text" name="alamat" class="form-control" placeholder="Alamat">

            </div>

        </div>

        <div class="col-xs-12 col-sm-12 col-md-12 text-center">

                <button type="submit" class="btn btn-primary">kirim</button>

        </div>

    </div>

</form>

@endsection

Editdata.blade.php

@extends('layout')

@section('content')

<div class="row">

    <div class="col-lg-12 margin-tb">

        <div class="pull-left">

            <h2>Edit Data Mahasiswa</h2>

        </div>

        <div class="pull-right">

            <a class="btn btn-primary" href="{{ route('datamahasiswa') }}"> Kembali</a>

        </div>

    </div>

</div>

@if ($errors->any())

    <div class="alert alert-danger">

        <strong>Whoops!</strong> Ada beberapa masalah terkait beberapa data yang anda masukkan.<br><br>

        <ul>

            @foreach ($errors->all() as $error)

                <li>{{ $error }}</li>

            @endforeach

        </ul>

    </div>

@endif

<form action="{{ route('updatedata',$dtmhs->id) }}" method="POST">

    @csrf

     <div class="row">

        <div class="col-xs-12 col-sm-12 col-md-12">

            <div class="form-group">

                <strong>Nim:</strong>

                <input type="text" name="nrp" class="form-control" placeholder="Nim" value="{{ $dtmhs->nrp }}" >

            </div>

        </div>

        <div class="col-xs-12 col-sm-12 col-md-12">

            <div class="form-group">

                <strong>Nama:</strong>

                <input type="text" name="nama" class="form-control" placeholder="Nama" value="{{ $dtmhs->nama }}" >

            </div>

        </div>

        <div class="col-xs-12 col-sm-12 col-md-12">

            <div class="form-group">

                <strong>Alamat:</strong>

                <input type="text" name="alamat" class="form-control" placeholder="Alamat" value="{{ $dtmhs->alamat }}" >

            </div>

        </div>

        <div class="col-xs-12 col-sm-12 col-md-12 text-center">

                <button type="submit" class="btn btn-primary">kirim</button>

        </div>

    </div>

</form>
@endsection

5. Tampilan

Home

Tambah data

Berhasil di tambah

Edit data

Berhasil di edit

Berhasil di hapus

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *