TIF_E41210674/app/Http/Controllers/ProdukController.php

142 lines
4.7 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\produk; //Import model produk
use Illuminate\Support\Facades\DB; //Import DB facade untuk Query Builder
class ProdukController extends Controller
{
public function getProduk()
{
$dataToko = [
'namaToko' => 'Toko PT Maju Kedepan',
'alamat' => 'Jl. Wetan kulon Ngetan',
'tipe_toko' => 'Ruko',
];
return view('pages.product', $dataToko);
}
public function create()
{
return view('pages.produk.addProduct');
}
//Query Tambah data
public function store(Request $requesttambahproduk)
{
$requesttambahproduk->validate(
[
'nama_produk' => 'required|min:8|max:30',
'harga_produk' => 'required',
'deskripsi' => 'required|min:5'
],
[
'nama_produk.min' => 'Nama produk minimal 8 karakter',
'nama_produk.max' => 'Nama produk maksimal 30 karakter',
'nama_produk.required' => 'Nama produk wajib di isi',
'harga_produk.required' => 'Harga produk wajib di isi',
'deskripsi.required' => 'Deskripsi produk wajib di isi',
'deskripsi.min' => 'Deskripsi produk minimal 5 karakter',
]
);
//dd("Berhasil Input Data");
//Untuk Menambahkan data
produk::create([
'nama_produk' => $requesttambahproduk->nama_produk,
'harga_produk' => $requesttambahproduk->harga_produk,
'deskripsi_produk' => $requesttambahproduk->deskripsi,
'kategori_id' => '1',
]);
//Notif Setelah tambah data berhasil
return redirect('/tampilanProduk')
->with('message', 'Tambah Data')
->with('info','Berhasil Menambahkan Data');
}
public function tampilkanProduk(Request $request)
{
$dataTentangtoko = [
'namaTokoPT' => 'Toko PT Belok ke samping',
'alamatPT' => 'Jl. Wetan Ngalor Ngidul',
'tipe_tokoPT' => 'Supermarket',
];
$search = $request->keyword;
$produk = produk::when($search, function($query,$search){
return $query->where('nama_produk','like',"%{$search}%")
->orWhere('deskripsi_produk','like',"%{$search}%");
})->get();
//return view('pages.produk.showProduct', $dataTentangtoko);
//$eloquent = produk::get(); //Query untuk get semua data produk Eloquent
$QueryBuilder = DB::table('tb_produk')->get(); //Query untuk get semua data produk Query Builder
//dd($QueryBuilder); //Query untuk Debug (Dump and Die)
return view('pages.produk.showProduct', [
'dataTentangtoko' => $dataTentangtoko,
'dataProduk' => $produk, //Di kirim ke halaman showProduct dan di hlm tsb menjadi $dataProduk
]);
}
public function showDetailProduk($id)
{
$data = produk::findOrFail($id);
return view('pages.produk.detailProduk', [
'produk' => $data
]);
}
public function edit($id)
{
//Mengambil data spesifik dari id
$data = produk::findOrFail($id);
return view('pages.produk.editproduct', [
'data' => $data,
]);
}
public function update($id, Request $request)
{
// dd('Berhasil Menyimpan Data');
// dd($request->all());
$request->validate(
[
'nama_produk' => 'required|min:8',
'harga_produk' => 'required',
'deskripsi' => 'required|min:5'
],
[
'nama_produk.min' => 'Nama produk minimal 8 karakter',
'nama_produk.required' => 'Nama produk wajib di isi',
'harga_produk.required' => 'Harga produk wajib di isi',
'deskripsi.required' => 'Deskripsi produk wajib di isi',
'deskripsi.min' => 'Deskripsi produk minimal 5 karakter',
]
);
//Query Simpan Data Update
produk::where('id_produk',$id)->update(
[
'nama_produk' => $request ->nama_produk,
'harga_produk' => $request -> harga_produk,
'deskripsi_produk' => $request -> deskripsi,
]
);
return redirect('tampilanProduk')
->with('message','Data berhasil di update')
->with('info','Jangan lupa cek kembali data Anda!');
}
public function deleteProduk ($id){
//dd($id);
produk::findOrFail($id)->delete();
return redirect('tampilanProduk')
->with('message','Hapus Data')
->with('info','Data Berhasil Dihapus');
}
}