MODUL MEMBUAT PROGRAM DENGAN LARAVEL 10 Part 4 – INSERT DATA KE DATABASE
è use Illuminate\Http\RedirectResponse;
è public function create(): View
{
return view('beritas.create');
}
è public function store(Request $request): RedirectResponse
{
//validate form
$this->validate($request, [
'gambar'=>
'required|image|mimes:jpeg,jpg,png|max:2048',
'judul' => 'required|min:5',
'isi' => 'required|min:10'
]);
//upload gambar
$gambar = $request->file('gambar');
$gambar->storeAs('public/beritas',
$gambar->hashName());
//create post
Berita::create([
'gambar' => $gambar->hashName(),
'judul'
=> $request->judul,
'isi' => $request->isi
]);
//redirect to index
return
redirect()->route('beritas.index')->with(['success' => 'Data Berhasil
Disimpan!']);
}
Dengan ketentuan seperti berikut ini
Jika sudah benar hasil kodenya seperti berikut ini
<?php
namespace App\Http\Controllers;
use App\Models\Berita;
use Illuminate\View\View;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
class BeritaController extends Controller
{
public function index(): View
{
//get beritas
$beritas = Berita::latest()->paginate(5);
//render view with
beritas
return view('beritas.index', compact('beritas'));
}
public function create(): View
{
return view('beritas.create');
}
public function store(Request $request):
RedirectResponse
{
//validate form
$this->validate($request, [
'gambar' => 'required|image|mimes:jpeg,jpg,png|max:2048',
'judul' => 'required|min:5',
'isi' => 'required|min:10'
]);
//upload gambar
$gambar = $request->file('gambar');
$gambar->storeAs('public/beritas', $gambar->hashName());
//create post
Berita::create([
'gambar' => $gambar->hashName(),
'judul' => $request->judul,
'isi' => $request->isi
]);
//redirect to index
return redirect()->route('beritas.index')->with(['success' => 'Data
Berhasil Disimpan!']);
}
}
<!DOCTYPE html>
<html lang="en">
<head>
<title>Data Beritas - RPL</title>
<link rel="stylesheet" href="http://localhost/bootstrap/bootstrap.min.css">
</head>
<body style="background:
lightgray">
<div class="container mt-5 mb-5">
<div class="row">
<div class="col-md-12">
<div class="card border-0
shadow-sm rounded">
<div class="card-body">
<form action="{{ route('beritas.store') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label class="font-weight-bold">GAMBAR</label>
<input type="file" class="form-control
@error('gambar') is-invalid @enderror" name="gambar">
<!-- error message untuk title -->
@error('gambar')
<div class="alert
alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label class="font-weight-bold">JUDUL</label>
<input type="text" class="form-control
@error('judul') is-invalid @enderror" name="judul" value="{{ old('judul') }}" placeholder="Masukkan
Judul berita">
<!-- error message untuk title -->
@error('judul')
<div class="alert
alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<div class="form-group">
<label class="font-weight-bold">KONTEN</label>
<textarea class="form-control
@error('isi') is-invalid @enderror" name="isi" rows="5" placeholder="Masukkan Konten berita">{{ old('content')
}}</textarea>
<!-- error message untuk content -->
@error('isi')
<div class="alert
alert-danger mt-2">
{{ $message }}
</div>
@enderror
</div>
<button type="submit" class="btn btn-md
btn-primary">SIMPAN</button>
<button type="reset" class="btn btn-md
btn-warning">RESET</button>
</form>
</div>
</div>
</div>
</div>
</div>
<script src="http://localhost/bootstrap/jquery.min.js"></script>
<script src="http://localhost/bootstrap/bootstrap.min.js"></script>
<script src="https://cdn.ckeditor.com/4.13.1/standard/ckeditor.js"></script>
<script>
CKEDITOR.replace( 'isi' );
</script>
</body>
</html>
3. 3. Jika sudah selesai, coba
jalankan dengan cara akses http://localhost:8000/beritas kemudian klik TAMBAH BERITA , maka
akan di tampilkan form tambah berita seperti berikut ini