Postingan lainnya
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,
]);