Crud Laravel Single Field
Crud Laravel Single Field
Radja Mahesa Waluya XII RPL
1. Membuat Tabel Database, Pastekan Kode berikut pada Database phpMyAdmin. untuk membuat tabel yang berisi 1 Field.
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
START TRANSACTION;
SET time_zone = "+00:00";
CREATE TABLE `tekstable` (
`teks` varchar(50) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;
INSERT INTO `tekstable` (`teks`) VALUES
('Ini Teks yang di edit');
COMMIT;
2. Membuat Controller
<?php
namespace App\Http\Controllers;
use App\Models\teksmodel;
use Illuminate\Http\Request;
class tekscontroller extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function index()
{
$teks = teksmodel::orderby('teks')->paginate(100);
return view('crudfield.index')->with('teks',$teks);
}
/**
* Show the form for creating a new resource.
*
* @return \Illuminate\Http\Response
*/
public function create()
{
return view('crudfield.create');
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$request->validate([
'teks' => 'required',
]);
// Absen::create($request->all());
$data = [
'teks' => $request->teks,
];
teksmodel::create($data);
return redirect()->route('crudfield.index')->with('success','Data telah diinput');
}
/**
* Display the specified resource.
*
* @param \App\Models\Product $product
* @return \Illuminate\Http\Response
*/
public function show(teksmodel $teks)
{
return view('crudfield.show',compact('teks'));
}
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\Product $product
* @return \Illuminate\Http\Response
*/
public function edit($teksbaru)
{
$teks = teksmodel::where('teks', $teksbaru)->first();
return view('crudfield.edit')->with('teks', $teks);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\Product $product
* @return \Illuminate\Http\Response
*/
public function update(Request $request, $teksbaru)
{
$request->validate([
'teks' => 'required',
], [
'teks.required' => 'teks wajib diisi',
]);
$data = [
'teks' => $request->teks,
];
teksmodel::where('teks', $teksbaru)->update($data);
return redirect()->route('crudfield.index')->with('success','Data telah diupdate');
}
/**
* Remove the specified resource from storage.
*
* @param \App\Models\Product $product
* @return \Illuminate\Http\Response
*/
public function destroy($teks)
{
teksmodel::where('teks', $teks)->delete();
return redirect()->route('crudfield.index')->with('success', 'Berhasil melakukan delete data');
}
3. Membuat Model
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class teksmodel extends Model
{
use HasFactory;
protected $table = 'tekstable';
public $timestamps = false;
protected $fillable = ['teks'];
}
3. Membuat View
A. View Template
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>CRUD FIELD</title>
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-iYQeCzEYFbKjA/T2uDLTpkwGzCiq6soy8tYaI1GyVh/UjpbCx/TYkiZhlZB6+fzT" crossorigin="anonymous">
<style>
body {
background-image: url('uploads/blue.jpeg'); /* Specify the path to your background image */
background-size: cover; /* Scale the image to cover the entire body */
background-repeat: no-repeat; /* Prevent image repetition */
background-attachment: fixed; /* Fix the image in place */
}
</style>
</head>
<body class="bg-light">
<main class="container">
<br>
{{-- <h1>Toko Printer</h1> --}}
@include('komponen.pesan')
@yield('konten')
</main>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.2.1/dist/js/bootstrap.bundle.min.js" integrity="sha384-u1OknCvxWvY5kfmNBILK2hRnQC3Pr17a+RTT6rIHI7NnikvbZlHgTPOOmMi466C8" crossorigin="anonymous"></script>
</body>
</html>
B. View Index
@extends('crudfield.templatefield')
@section('konten')
<div class="my-3 p-3 bg-body rounded shadow-sm">
@if(count($teks) === 0)
<div class="pb-3">
<a href='{{ url('crudfield/create') }}' class="btn btn-primary">+ Tambah Data</a>
</div>
@endif
<table class="table table-striped">
<thead>
<tr>
<th class="col-md-10">Teks</th>
</tr>
</thead>
<tbody>
<?php $i = $teks->firstItem() ?>
@foreach ($teks as $item)
<tr>
<td>{{$item->teks}}</td>
<td>
<a href='{{ url('crudfield/'.$item->teks.'/edit') }}' class="btn btn-warning btn-sm">Edit</a>
<form onsubmit="return confirm('Yakin akan menghapus data?')" class='d-inline' action="{{ url('crudfield/'.$item->teks) }}" method="post">
@csrf
@method('DELETE')
<button type="submit" name="submit" class="btn btn-danger btn-sm">Delete</button>
</form>
</td>
</tr>
<?php $i++ ?>
@endforeach
</tbody>
</table>
{{ $teks->withQueryString()->links() }}
</div>
@endsection
C. View Edit
@extends('crudfield.templatefield')
@section('konten')
<form action='{{url('crudfield/'.$teks->teks)}}' method='post'>
@csrf
@method('PUT')
<div class="my-3 p-3 bg-body rounded shadow-sm">
<div class="mb-3 row">
<label for="teks" class="col-sm-2 col-form-label">Teks</label>
<div class="col-sm-10">
<input type="text" class="form-control" name='teks' id="teks">
</div>
</div>
<div class="mb-3 row">
<label for="jurusan" class="col-sm-2 col-form-label"></label>
<div class="col-sm-10"><button type="submit" class="btn btn-primary" name="submit">SIMPAN</button></div>
</div>
</form>
</div>
@endsection
Hasil :
Test Input Data (Create)
Comments
Post a Comment