示例#1
0
 public function listProducts($data)
 {
     if (is_array($data)) {
         $promotions = new Promotions();
         $product_ids = implode(",", array_keys($data));
         $query = $this->sql("SELECT products.id, products.name as product_name, products.photo as product_photo, price, categories.name as category_name, category_id FROM products JOIN categories ON categories.id = products.category_id WHERE products.id IN ({$product_ids})")->fetchAllAssoc();
         foreach ($query as $key => $item) {
             $discount = $promotions->getProductPromotion($item['id']);
             if ($discount) {
                 $query[$key]['discount'] = $discount;
             }
         }
         return $query;
     }
 }
 /**
  * @param $id
  * @param Products $products
  * @param Reviews $reviews
  * @param Categories $categories
  * @param Promotions $promotions
  * @throws \Exception
  */
 public function getProduct($id, Products $products, Reviews $reviews, Categories $categories, Promotions $promotions)
 {
     $cart = $this->session->getSession()->cart ?: [''];
     $this->view->appendToLayout('body', "products.product");
     $this->view->display('layouts.main', ['product' => $products->get($id), 'cart' => $cart, 'promotion' => $promotions->getProductPromotion($id) ?: null, 'reviews' => $reviews->getForProduct($id), 'current_user_review' => $reviews->getForUser($this->auth->user()->id, $id), 'categories' => $categories->listAllNames()]);
 }