CRUD Laravel Part 2 (16)

Assalamualaikum temen-temen...

    Heyyo wasap, balik lagi nih di blog mimin yok, kali mimin akan meneruskan postingan sebelumnya masih tentang CRUD, kali ini mimin akan kasih tau caranya bagaimana edit dan juga delete pada laravel, cusss di simak

1. Tambahkan kolom baru untuk opsi tambah dan edit
buka file resources/views/kelas.blade.php lalu tambahkan (yang di bold)
<tr>
        <th width = "50px"><b>No.</b></th>
        <th width = "100px">Kelas</th>
        <th width = "300px">Jurusan</th>
        <th width = "100px">Ruangan</th>
        <th width = "300px">Wali Kelas</th>
        <th colspan="2" width = "auto">Option</th>
      </tr>
      @foreach ($kelas as $kelad)
        <tr>
          <td>{{ isset($i) ? ++$i : $i = 1 }}</td>
          <td>{{$kelad->nama_kelas}}</td>
          <td>{{$kelad->jurusan}}</td>
          <td>{{$kelad->lokasi_ruangan}}</td>
          <td>{{$kelad->nama_wali_kelas}}</td>
          <td headers="">
            <a href="{{ url('/kelas/' . $kelad->id.'/edit') }}" class="btn btn-sm btn-primary">Edit</a>
          </td>
        </tr>

2. Tambahkan Routes Edit
buka file routes/web.php lalu tambah
Route::get('/kelas/{id}/edit','KelasController@edit');

3. Tambahkan fungsi edit
buka file app/Http/Controllers/KelasController.php lalu tambahkan
   public function edit (Request $request, $id){
    $data['kelas'] = \DB::table('t_kelas')->find($id);
    return view('kelas.form',$data);
   }

4. Edit file form kelas
buka file resources/views/kelas/form.blade.php lalu edit dan tambahkan bagian
@extends('layouts.app')
@section('content')

<div class="container">
@if(session('error'))
<div class="alert alert-error">
{{ session('error') }}
</div>
@endif

@if(count($errors) > 0)
<div class="alert alert-danger">
<strong>Warning !!!</strong>
<br>
<ul>
@foreach($errors->all() as $error)
    <li>{{ $error }}</li>
    @endforeach
</ul>
</div>
@endif
</div>
    <form action="{{url('/kelas',@$kelas->id)}}" method="POST">
      @csrf

      @if(!empty($kelas))
        @method('PATCH')
      @endif

     <div class="container">
      <h3>Data Kelas</h3>
        <div class="col-md-12">
          <strong>Kelas :</strong>
          <input type="text" name="nama_kelas" class="form-control" placeholder="Masukan Kelas" value="{{ old('nama_kelas',@$kelas->nama_kelas) }}">
        </div>
        <div class="col-md-12">
          <strong>Jurusan :</strong><br>
          <select name="jurusan"class="form-control" >
            <option value="" {{ old('jurusan', @$kelas->jurusan) == '' ? 'selected' : '' }}>- Pilih Jurusan -</option>
            <option value="Audio Video" {{ old('jurusan',@$kelas->jurusan) == 'Audio Video' ? 'selected' : '' }}>Audio Video</option>
            <option value="Teknik Instalasi Tenaga Listrik" {{ old('jurusan',@$kelas->jurusan) == 'Teknik Instalasi Tenaga Listrik' ? 'selected' : '' }}>Teknik Instalasi Tenaga Listrik</option>
            <option value="Teknik Otomasi Industri" {{ old('jurusan',@$kelas->jurusan) == 'Teknik Otomasi Industri' ? 'selected' : '' }}>Teknik Otomasi Industri</option>
            <option value="Rekayasa Perangkat Lunak" {{ old('jurusan',@$kelas->jurusan) == 'Rekayasa Perangkat Lunak' ? 'selected' : '' }}>Rekayasa Perangkat Lunak</option>
            <option value="Teknik Komputer Jaringan" {{ old('jurusan',@$kelas->jurusan) == 'Teknik Komputer Jaringan' ? 'selected' : '' }}>Teknik Komputer Jaringan</option>
            <option value="Multimedia" {{ old('jurusan',@$kelas->jurusan) == 'Multimedia' ? 'selected' : '' }}>Multimedia</option>
          </select>
        </div>
        <div class="col-md-12">
          <strong>Ruangan :</strong>
          <input type="text" name="lokasi_ruangan" class="form-control" placeholder="Lokasi Ruangan" value="{{ old('lokasi_ruangan',@$kelas->lokasi_ruangan) }}">
        </div>
        <div class="col-md-12">
          <strong>Nama Wali Kelas :</strong>
          <input type="text" name="nama_wali_kelas" class="form-control" placeholder="Nama Walikelas" value="{{ old('nama_wali_kelas', @$kelas->nama_wali_kelas) }}">
        </div>
        <br>
        <div class="col-md-12">
          <button type="submit" class="btn btn-block btn-primary" value="Simpan">Submit</button>
          <a href="{{url('/kelas')}}" class="btn btn-block btn-danger">Back</a>
        </div>
    </form>
  </div>
@endsection


5. Tambahkan fungsi update
buka file app/Http/Controllers/KelasController.php lalu tambahkan
// Update
    public function update(Request $request, $id){
    $rule=[
    'nama_kelas' => 'required',
    'jurusan' => 'required',
    'lokasi_ruangan' => 'required',
    'nama_wali_kelas' => 'required',
    ];
    $this->validate($request, $rule);

    $input = $request->all();
    unset($input['_token']);
    unset($input['_method']);

    $status = \DB::table('t_kelas')->where('id',$id)->update($input);

    if($status){
    return redirect('/kelas')->with('success','Data berhasil diubah !!!');
    } else {
    return redirect('/kelas/create')->with('error','Data gagal diubah !!!');
    }
    }

6. Tambahkan Routes untuk fungsi update
buka file routes/web.php lalu tambahkan
Route::patch('/kelas/{id}','KelasController@update');

Kuy dicoba, sebelum di edit

Setelah di edit

7. Tambahkan delete
buka file resources/views/kelas.blade.php lalu tambahkan (yang di bold)
<tr>
          <td>{{ isset($i) ? ++$i : $i = 1 }}</td>
          <td>{{$kelad->nama_kelas}}</td>
          <td>{{$kelad->jurusan}}</td>
          <td>{{$kelad->lokasi_ruangan}}</td>
          <td>{{$kelad->nama_wali_kelas}}</td>
          <td headers="">
            <a href="{{ url('/kelas/' . $kelad->id.'/edit') }}" class="btn btn-sm btn-primary">Edit</a>
          </td>
          <td>
            <form action ="{{ url('/kelas/' . $kelad->id) }}" method = "POST">
                @method('DELETE')
                @csrf
                <button type="submit" class="btn btn-sm btn-danger">Delete</button>
            </form>
          </td>
       </tr>

8. Tambahkan Routes delete
buka file routes/web.php lalu tambahkan
Route::delete('/kelas/{id}','KelasController@destroy');


9. Tambahkan fungsi destroy
buka file app/Http/Controllers/KelasController.php lalu tambahkan
    // DELETE
    public function destroy(Request $request, $id){

    $status = \DB::table('t_kelas')->where('id',$id)->delete();

    if($status){
    return redirect('/kelas')->with('success','Data berhasil di Hapus !!!');
    } else {
    return redirect('/kelas/create')->with('error','Data gagal dihapus !!!');
    }
    }

Langsung aja coba yuk

Studi Kasus 1
Jelaskan isi fungsi update dan destroy
Sama sama untuk mengambil data id dari sebuah button kemudian dieksekusi melalui perintah yang diinginkan

Studi kasus 2
Dalam tabel kelas tambah opsi edit dan delete (Diatas)

Itulah yang bisa mimin sampaikan kali ini dan sampai jumpa d lain waktu ya

Wassalamualaikum...

1 Komentar

  1. Makasih bat teteh ❤ blog teteh jadi rujukan aku belajar pwpb skrg wkwkwkwk

    BalasHapus