Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace App\Http\Controllers;
- use Illuminate\Http\Request;
- use App\Models\Product;
- use App\Models\Tipe;
- use App\Models\Category;
- use App\Models\Size;
- use App\Models\Color;
- use App\Models\Image as ImageModel;
- use App\Models\Spesifikasi;
- use Intervention\Image\Facades\Image as Image;
- use DB;
- class ProdukController extends Controller
- {
- public function index()
- {
- $produks = Product::with(['categories'])->orderBy('created_at','asc')->get();
- $tipes = Tipe::all();
- $sizes = Size::all();
- $warnas = Color::all();
- $spesification = Spesifikasi::all();
- $categories = Category::all();
- return View('admin.produk', ['produks' => $produks,
- 'tipes' => $tipes,
- 'categories' => $categories,
- 'sizes' => $sizes,
- 'warnas' => $warnas,
- 'spesification' => $spesification,
- ]);
- }
- public function store(Request $request)
- {
- // dd($war = explode(',', $request->kategori));
- $product = new Product;
- $product->kd_product = $request->kd_produk;
- $product->title = $request->title;
- $product->restock = date("Y-m-d", strtotime($request->restock));
- $product->harga = $request->harga;
- $product->link = $request->link;
- $product->tipe = $request->tipe;
- $product->status = "unpublish";
- $product->jml_produksi = $request->jml_produksi;
- $product->jml_klik = 0;
- $product->save();
- $pid = $product->id;
- //insert kategori
- $kat = explode(',', $request->kategori);
- $category = Category::find($kat);
- $product->categories()->attach($category);
- //insert color
- $war = explode(',', $request->warna);
- $color = Color::find($war);
- $product->colors()->attach($color);
- //insert spesifikasi
- $spec = explode(',', $request->spesifikasi);
- $spesifikasi = Spesifikasi::find($spec);
- $product->spesifikasis()->attach($spesifikasi);
- //insert ukuran
- $siz = explode(',', $request->ukuran);
- $size = Size::find($siz);
- $product->sizes()->attach($size);
- $images = [];
- foreach(json_decode($request->gambar) as $i) {
- $fileName = time() . '_' . date('ymdhis') . '_' . uniqid();
- Image::make($i->image)
- ->save(public_path('storage/produk/').$fileName.'.png');
- $images[] = [
- 'product_id' => $pid,
- 'gambar' => $fileName.'.png',
- 'thumbnail' => $fileName.'.png',
- ];
- }
- ImageModel::insert($images);
- return response()->json($product);
- // dd($request->tipe);
- // dd($request->kategori);
- // $validator = Validator::make(Input::all(), $this->rules);
- // if ($validator->fails()) {
- // return Response::json(array('errors' => $validator->getMessageBag()->toArray()));
- // } else {
- // $tipe = new Tipe();
- // $tipe->tipe = $request->tipe;
- // $tipe->save();
- // return response()->json($tipe);
- // }
- }
- public function update(Request $request, $id)
- {
- DB::beginTransaction();
- try {
- $product = Product::findOrFail($id);
- $product->title = $request->produk;
- $product->save();
- $images = [];
- ImageModel::where('product_id', $id)->delete();
- foreach(json_decode($request->gambar) as $i) {
- $fileName = time() . '_' . date('ymdhis') . '_' . uniqid();
- Image::make($i->image)
- ->save(public_path('storage/produk/').$fileName.'.png');
- $images[] = [
- 'product_id' => $id,
- 'gambar' => $fileName.'.png',
- 'thumbnail' => $fileName.'.png',
- ];
- }
- ImageModel::insert($images);
- DB::commit();
- return response()->json(json_decode(Product::whereId($id)->with('images')->first()));
- } catch (\Exception $e) {
- DB::rollback();
- }
- }
- public function show(Request $request, $id)
- {
- $product = Product::whereId($id)->with('images')->first();
- return response()->json($product);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement