feat: associate PaketFoto with User model and update FotoController for user ID handling
This commit is contained in:
parent
fcc1ab0c04
commit
6fa0d1a1da
|
|
@ -7,6 +7,7 @@
|
||||||
use App\Models\PaketFoto;
|
use App\Models\PaketFoto;
|
||||||
use App\Http\Requests\Admin\FotoRequest; // Gunakan Request baru
|
use App\Http\Requests\Admin\FotoRequest; // Gunakan Request baru
|
||||||
use Illuminate\Support\Facades\Storage;
|
use Illuminate\Support\Facades\Storage;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class FotoController extends Controller
|
class FotoController extends Controller
|
||||||
{
|
{
|
||||||
|
|
@ -20,12 +21,14 @@ public function index()
|
||||||
public function store(FotoRequest $request)
|
public function store(FotoRequest $request)
|
||||||
{
|
{
|
||||||
$data = $request->validated();
|
$data = $request->validated();
|
||||||
|
$data['id_user'] = Auth::id();
|
||||||
if ($request->hasFile('foto')) {
|
if ($request->hasFile('foto')) {
|
||||||
$file = $request->file('foto');
|
$file = $request->file('foto');
|
||||||
$filename = time() . '_' . $file->getClientOriginalName();
|
$filename = time() . '_' . $file->getClientOriginalName();
|
||||||
$path = $file->storeAs('img/foto', $filename, 'public');
|
$path = $file->storeAs('img/foto', $filename, 'public');
|
||||||
$data['foto'] = $path;
|
$data['foto'] = $path;
|
||||||
}
|
}
|
||||||
|
|
||||||
PaketFoto::create($data);
|
PaketFoto::create($data);
|
||||||
return redirect()->back()->with('success', 'Paket foto baru berhasil ditambahkan!');
|
return redirect()->back()->with('success', 'Paket foto baru berhasil ditambahkan!');
|
||||||
}
|
}
|
||||||
|
|
@ -34,6 +37,7 @@ public function update(FotoRequest $request, string $id)
|
||||||
{
|
{
|
||||||
$paket = PaketFoto::findOrFail($id);
|
$paket = PaketFoto::findOrFail($id);
|
||||||
$data = $request->validated();
|
$data = $request->validated();
|
||||||
|
$data['id_user'] = Auth::id();
|
||||||
if ($request->hasFile('foto')) {
|
if ($request->hasFile('foto')) {
|
||||||
if ($paket->foto) {
|
if ($paket->foto) {
|
||||||
Storage::disk('public')->delete($paket->foto);
|
Storage::disk('public')->delete($paket->foto);
|
||||||
|
|
@ -49,6 +53,9 @@ public function update(FotoRequest $request, string $id)
|
||||||
public function destroy(string $id)
|
public function destroy(string $id)
|
||||||
{
|
{
|
||||||
$paket = PaketFoto::findOrFail($id);
|
$paket = PaketFoto::findOrFail($id);
|
||||||
|
if (Auth::user()->role !== 'admin_foto' && Auth::user()->role !== 'owner') {
|
||||||
|
return redirect()->back()->with('error', 'Anda tidak memiliki akses untuk menghapus paket ini!');
|
||||||
|
}
|
||||||
if ($paket->foto) {
|
if ($paket->foto) {
|
||||||
Storage::disk('public')->delete($paket->foto);
|
Storage::disk('public')->delete($paket->foto);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,15 @@ class PaketFoto extends Model
|
||||||
'harga',
|
'harga',
|
||||||
'foto',
|
'foto',
|
||||||
'durasi',
|
'durasi',
|
||||||
|
'id_user',
|
||||||
];
|
];
|
||||||
|
|
||||||
public function booking()
|
public function booking()
|
||||||
{
|
{
|
||||||
return $this->hasMany(BookingFoto::class, 'id_paket');
|
return $this->hasMany(BookingFoto::class, 'id_paket');
|
||||||
}
|
}
|
||||||
|
public function user()
|
||||||
|
{
|
||||||
|
return $this->belongsTo(User::class, 'id_user');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -27,4 +27,8 @@ class User extends Authenticatable
|
||||||
'password',
|
'password',
|
||||||
'remember_token',
|
'remember_token',
|
||||||
];
|
];
|
||||||
|
public function paketFotos()
|
||||||
|
{
|
||||||
|
return $this->hasMany(PaketFoto::class, 'id_user');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue