<?php
namespace App\Http\Controllers;
use App\Models\event;
use App\Models\tag_event;
use Illuminate\Contracts\Encryption\DecryptException;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Crypt;
use Illuminate\Support\Facades\File;
class EventController extends Controller
{
public function index(){
$data['event']=event::get();
$data['tag']=tag_event::get();
return view('event.index')->with($data);
}
public function store(Request $request)
{
$request->validate([
'title' => 'required',
// 'deskripsi' => 'required',
'jam'=>'required',
'tanggal'=>'required',
'alamat'=>'required',
'tag_id' => 'required',
'keterangan' => 'required',
'link' => 'required|url',
'biaya' => 'nullable',
'photo' => 'mimes:jpg,jpeg,png,gif,svg|required',
]);
$data = [
'tanggal' => now(),
'title' => $request->title,
'tag_id' => $request->tag_id,
'alamat' => $request->alamat,
'jam'=>$request->jam,
'link'=>$request->link,
'keterangan'=>$request->keterangan,
'biaya'=>$request->biaya,
// 'deskripsi' => nl2br($request->deskripsi),
];
if ($request->hasFile('photo')) {
$foto_file = $request->file('photo');
$foto_ekstensi = $foto_file->extension();
$foto_baru = "EVENT-" . date('ymdhis') . ".$foto_ekstensi";
$foto_file->move(public_path('images'), $foto_baru);
$data['photo'] = $foto_baru;
}
event::create($data);
return redirect()->route('event.index')->with('success', 'Data successfully added');
}
public function update(request $request,string $id){
try {
$decryptedId=Crypt::decryptString($id);
$request->validate([
'title' => 'required',
// 'deskripsi' => 'required',
'jam'=>'required',
'tanggal'=>'required',
'alamat'=>'required',
'tag_id' => 'required',
'keterangan' => 'required',
'link' => 'required|url',
'biaya' => 'nullable',
'photo' => 'mimes:jpg,jpeg,png,gif,svg|nullable',
]);
$data = [
'tanggal' => now(),
'title' => $request->title,
'tag_id' => $request->tag_id,
'alamat' => $request->alamat,
'jam'=>$request->jam,
'keterangan'=>$request->keterangan,
'link'=>$request->link,
'biaya'=>$request->biaya,
// 'deskripsi' => nl2br($request->deskripsi),
];
if ($request->hasFile('photo')) {
$foto_file = $request->file('photo');
$foto_ekstensi = $foto_file->extension();
$foto_baru = "EVENT-" . date('ymdhis') . ".$foto_ekstensi";
$foto_file->move(public_path('images'), $foto_baru);
$data['photo'] = $foto_baru;
$getfoto = event::where('id', $decryptedId)->first();
$foto_lama = $getfoto->photo;
File::delete(public_path('images') . "/" . $foto_lama);
}
event::where('id', $decryptedId)->update($data);
return redirect()->route('event.index')->with('success', 'Data successfully changed');
} catch (DecryptException $e) {
return redirect()->back()->with('error', 'Invalid ID');
}
}
public function destroy(string $id)
{
try {
$decryptedId = Crypt::decryptString($id);
$event=event::where('id', $decryptedId)->first();
File::delete(public_path('images') . "/" . $event->photo);
$event->delete();
return redirect()->route('event.index')->with('delete', 'Data successfully deleted');
} catch (DecryptException $e) {
return redirect()->back()->with('error', 'Invalid ID');
}
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]