Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
Kelas Premium!
Belajar bikin website dari nol sekarang
Gunakan kupon "lebihcepat" untuk diskon 25%!
Gambar tidak tampil di folder public/store/uploads/buku dilaravel 10
Izin bertanya diaplikasi saya sudah berhasil untuk uploads gambar di database dan sudah masuk di folder uploads/buku yang sudah saya buat tetapi pada saat saya menampilkan ditampilan aplikasi tidak bisa muncul.
Kode Route
Route::group(['middleware' => 'auth'], function () {
Route::get('/buku', [BukuController::class, 'index']);
Route::get('/buku/store', [BukuController::class, 'create']);
Route::post('/buku/store', [BukuController::class, 'store']);
Route::get('/buku/{edit}/edit', [BukuController::class, 'edit']);
Route::put('/buku/{id}', [BukuController::class, 'update']);
Route::get('/buku/{id}', [BukuController::class, 'destroy']);
});
Kode Controller
<?php
namespace App\Http\Controllers;
use App\Models\Buku;
use Illuminate\Http\Request;
class BukuController extends Controller
{
public function index()
{
$buku = Buku::get();
// $buku = \App\Models\Buku::all();
// dd($kategoris->all());
return view("buku.index", compact("buku"));
}
public function create()
{
return view('buku.store');
}
public function store(Request $request)
{
$request->validate([
'sampul' => 'nullable|mimes:png,jpg,jpeg,webp',
'id_kategori' => 'required|max:255|string',
'judul' => 'required|max:255|string',
'penerbit' => 'required|max:255|string',
'pengarang' => 'required|max:255|string',
'tahun_terbit' => 'required|max:255|date',
'jumlah' => 'required|max:255|integer',
'is_active' => 'sometimes'
]);
if ($request->has('sampul')) {
$file = $request->file('sampul');
$extension = $file->getClientOriginalExtension();
$filename = time() . '.' . $extension;
$path = 'uploads/buku';
$file->move($path, $filename);
}
Buku::create([
'sampul' => $path . $filename,
'id_kategori' => $request->id_kategori,
'judul' => $request->judul,
'penerbit' => $request->penerbit,
'pengarang' => $request->pengarang,
'tahun_terbit' => $request->tahun_terbit,
'jumlah' => $request->jumlah,
'is_active' => $request->is_active == true ? 1 : 0,
]);
return redirect("buku")->with('sukses', 'Data Berhasil disimpan');
}
public function edit($id)
{
$buku = \App\Models\buku::find($id);
return view("buku.edit", compact("buku"));
}
public function update(Request $request, $id)
{
//kolom yang digunakan sesuai dengan nama tabel
$buku = \App\Models\Buku::find($id);
$buku->id_kategori = $request->id_kategori;
$buku->judul = $request->judul;
$buku->penerbit = $request->penerbit;
$buku->pengarang = $request->pengarang;
$buku->tahun_terbit = $request->tahun_terbit;
$buku->jumlah = $request->jumlah;
$buku->update();
return redirect("buku")->with('sukses', 'Data Berhasil diupdate');
}
public function destroy($id)
{
$buku = \App\Models\Buku::find($id);
$buku->delete();
return redirect("buku")->with('sukses', 'Data Berhasil dihapus');
}
}
kode Index / tampilan @extends('layout.master')
@section('title', 'buku')
@section('content') <div class="main-content"> <section class="section"> <div class="section-header"> <h1>Buku</h1> </div>
<div class="section-body">
<div class="card">
<div class="card-header">
<h4>Buku</h4>
<div class="card-header-form">
<button class="btn btn-sm btn-success" type="button" data-target="#modal-tambah" data-toggle="modal">Tambah
Data</button>
</div>
</div>
<div class="card-body">
<table class="table table-stripped" id="table">
<thead>
<tr>
<th style="width: 10%">No</th>
<th>Sampul</th>
<th>Kode</th>
<th>Judul</th>
<th>Penerbit</th>
<th>Pengarang</th>
<th>Tahun Terbit</th>
<th>Jumlah</th>
{{-- <th>Deskripsi</th> --}}
<th style="width: 15%">Aksi</th>
</tr>
</thead>
<tbody>
@foreach ($buku as $item)
<tr>
<td>{{ $loop->iteration }}</td>
{{-- <td>
<img src="/img/{{ $item->b_indonesia }}" alt="{{ $item->sampul }}" width="50" height="50">
</td> --}}
{{-- <td>
<img src="{{ asset($item->sampul) }}" style="width: 70px; height:70px" alt="Img" />
</td> --}}
<td>
<img src="{{ asset('uploads/buku/' . $item->sampul) }}" style="width: 70px; height:70px"
alt="Img">
</td>
<td>{{ $item->id_kategori }}</td>
<td>{{ $item->judul }}</td>
<td>{{ $item->penerbit }}</td>
<td>{{ $item->pengarang }}</td>
<td>{{ $item->tahun_terbit }}</td>
<td>{{ $item->jumlah }}</td>
<td>
<form action="/buku/{{ $item->id }}" id="delete-form{{ $item->id }}">
@method('delete')
<a href="/buku/{{ $item->id }}/edit" class="btn btn-sm btn-warning"><i
class="fa fa-edit"></i>
</a>
<button class="btn btn-sm btn-danger"
onclick="confirmDelete('delete-form{{ $item->id }}')"><i class="fa fa-trash"></i>
</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</section>
</div> @include('buku.form') @endsection
@push('script') <script> function confirmDelete(formId) { event.preventDefault() swal({ title: "apakah anda yakin?", text: "katika anda menekan Ok maka data anda akan terhapus", icon: "warning", buttons: true, dangerMode: true, }) .then((willDelete) => { if (willDelete) { document.getElementById(formId).submit() } }); }
$(document).ready(function() {
$('#table').DataTable();
});
</script> @endpush
kode tambah data / form
<div class="modal fade" id="modal-tambah" tabindex="-1" role="dialog" aria-labelledby="exampleModalLabel"
aria-hidden="true">
<div class="modal-dialog modal-dialog-centered" role="document">
<div class="modal-content">
<div class="modal-header">
<h5 class="modal-title" id="exampleModalLabel">Tambah Data Buku</h5>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
</div>
<div class="modal-body">
<form action="/buku/store" method="POST" enctype="multipart/form-data">
@csrf
{{-- <div class="form group">
<label for="sampul">Sampul</label>
<div class="controls">
<input type="file" name="sampul" class="form-control" required>
</div>
</div> --}}
<div class="form group">
<label for="sampul">Sampul</label>
<input type="file" name="sampul" class="form-control" required>
</div>
<div class="form group">
<label for="id_kategori">Kode</label>
<input type="text" name="id_kategori" id="id_kategori" class="form-control">
</div>
<div class="form group">
<label for="judul">judul</label>
<input type="text" name="judul" id="judul" class="form-control">
</div>
<div class="form group">
<label for="penerbit">Penerbit</label>
<input type="text" name="penerbit" id="penerbit" class="form-control">
</div>
<div class="form group">
<label for="pengarang">Pengarang</label>
<input type="text" name="pengarang" id="pengarang" class="form-control">
</div>
<div class="form group">
<label for="tahun_terbit">Tahun Terbit</label>
<input type="text" name="tahun_terbit" id="tahun_terbit" class="form-control">
</div>
<div class="form group">
<label for="jumlah">Jumlah</label>
<input type="text" name="jumlah" id="jumlah" class="form-control">
</div>
<button class="btn btn-sm btn-success" type="submit">Simpan</button>
</form>
</div>
</div>
</div>
</div>
Tanggapan
hasil dd requestnya gimana gan?
1 Jawaban:
Buat kek gini aja mas. soalnya mas nyimpan data sampul ke database sekalian sama path-nya kan.
<img src="{{ asset($item->sampul) }}" />
oh iya kalo bisa bagian ini coba di ubah dikit jadi kek gini :
Buku::create([
'sampul' => $path . '/' . $filename,
'id_kategori' => $request->id_kategori,
'judul' => $request->judul,
'penerbit' => $request->penerbit,
'pengarang' => $request->pengarang,
'tahun_terbit' => $request->tahun_terbit,
'jumlah' => $request->jumlah,
'is_active' => $request->is_active == true ? 1 : 0,
]);