142 lines
4.7 KiB
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');
|
|
}
|
|
}
|