CRUD Upload
CRUD Upload
DB_DATABASE=your-database-name
DB_USERNAME=your-database-user
DB_PASSWORD=your-database-password
6. Edit BarangModel
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
class BarangModel extends Model
{
use HasFactory;
protected $table = 'barang';
public $timestamps = false;
protected $fillable = ['kode_barang','nama_barang','harga','photo'];
}
7. Edit BarangController
<?php
namespace App\Http\Controllers;
use App\Models\BarangModel;
use Illuminate\Http\Request;
use Illuminate\Http\RedirectResponse;
use Illuminate\View\View;
class BarangController extends Controller
{
public function index() : view
{
$data['barang'] = BarangModel::orderBy('id','desc')->paginate(5);
return view('barang.index', $data);
}
return redirect()->route('barang.index')
->with('success','barang has been created
successfully.');
}
$barang = BarangModel::find($id);
// Update only if a new photo is provided
if ($request->hasFile('photo')) {
$image = $request->file('photo');
$imageName = time().'.'.$image->getClientOriginalExtension();
$image->move(public_path('images'), $imageName);
$barang->photo = $imageName;
}
return redirect()->route('barang.index')
->with('success','barang Has Been updated successfully');
}
Route::resource('barang', BarangController::class);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Daftar barang</title>
<link
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-10">
<div class="card">
<div class="card-header">Daftar Barang</div>
<div class="card-body">
<a href="{{ route('barang.create') }}"
class="btn btn-primary mb-3">Tambah Barang</a>
<table class="table">
<thead>
<tr>
<th>Kode Barang</th>
<th>Nama Barang</th>
<th>Harga</th>
<th>Photo</th>
</tr>
</thead>
<tbody>
@foreach($barang as $barang)
<tr>
<td>{{ $barang->kode_barang }}</td>
<td>{{ $barang->nama_barang }}</td>
<td>{{ $barang->harga }}</td>
<td>
@if($barang->photo)
<img src="{{ asset('images/'.$barang->photo)
}}" alt="{{ $barang->nama_barang }}" style="max-width: 100px;">
@else
No photo
@endif
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
</script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js">
</script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js">
</script>
</body>
</html>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
</script>
<script>
$(document).ready(function(){
$('#photo').change(function(){
var input = this;
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('#imagePreview').attr('src', e.target.result);
$('#imagePreviewContainer').show();
}
reader.readAsDataURL(input.files[0]);
}
});
});
</script>
Full Code:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Upload barang</title>
<link
href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
</script>
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Upload Foto Barang</div>
<div class="card-body">
<form action="{{ route('barang.store') }}"
method="POST" enctype="multipart/form-data">
<input type="hidden" name="_token" value="{{ csrf_token()
}}">
<div class="form-group">
<label for="nim">Kode Barang:</label>
<input type="text" class="form-control"
id="kode_barang" name="kode_barang">
</div>
<div class="form-group">
<label for="nama">Nama Barang:</label>
<input type="text" class="form-control"
id="nama_barang" name="nama_barang">
</div>
<div class="form-group">
<label for="harga">Harga:</label>
<input type="text" class="form-control"
id="harga" name="harga">
</div>
<div class="form-group">
<label for="photo">Photo:</label>
<input type="file" class="form-control-file"
id="photo" name="photo">
</div>
<div id="imagePreviewContainer" style="display:none;">
<img id="imagePreview" src="#"
alt="Image Preview" style="max-width: 200px;">
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js">
</script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.16.0/umd/popper.min.js">
</script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js">
</script>
<script>
$(document).ready(function(){
$('#photo').change(function(){
var input = this;
if (input.files && input.files[0]) {
var reader = new FileReader();
reader.onload = function(e) {
$('#imagePreview').attr('src', e.target.result);
$('#imagePreviewContainer').show();
}
reader.readAsDataURL(input.files[0]);
}
});
});
</script>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Edit Barang</title>
<!-- Bootstrap CSS -->
<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/
bootstrap.min.css" rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Edit Barang</div>
<div class="card-body">
<form method="POST" action="{{ route('barang.update',
$barang->id) }}" enctype="multipart/form-data">
@csrf
@method('PUT')
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Edit Barang</title>
<!-- Bootstrap CSS -->
<link
href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css"
rel="stylesheet">
</head>
<body>
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Edit Barang</div>
<div class="card-body">
<form method="POST" action="{{ route('barang.destroy',
$barang->id) }}" enctype="multipart/form-data">
@csrf
@method('DELETE')