/** * @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()]); }