我在做購物網站。我製作了Cart Model,它是Singleton。我的購物車始終存在於會話中(無論用戶是否登錄)。現在我必須每次調用每個控制器和getInstance動作來檢查或者有關鍵的「購物車」。 是否有可能爲所有視圖自動執行此操作?Laravel,Singleton - 如何將數據發送到所有控制器?
這裏是我的單身代碼:
class Cart
{
private $cartModel;
private static $instance;
private function __construct()
{
$this->cartModel = new CartModel();
$cart = Session::get('cart');
if ($cart == null) {
Session::put('cart', array());
}
}
private function __clone()
{
}
public static function getInstance()
{
if (self::$instance === null) {
self::$instance = new Cart();
}
return self::$instance;
}
public function get(){
return Session::get('cart');
}
}
在這裏,例如它的外觀在控制器和行動:
class StoreController extends Controller
{
public function mainSite()
{
$cart=Cart::getInstance()->get();
return View('zoo');
}
public function showCategory($categoryName)
{
$cart=Cart::getInstance()->get();
$category = new Category();
$categoryId = (int)$category->getCategoryId($categoryName);
$subCategories = Subcategory::where('category_id', $categoryId)->get();
return View('zoo-category', ['subCategories' => $subCategories, 'categoryName' => $categoryName]);
}
public function showSubcategory()
{
$cart=Cart::getInstance()->get();
}
我必須做這一切的時候:$車=車::的getInstance() - > get()方法; 是否有可能只做一次?
感謝您的諮詢。我寫了整個子項目,它也起作用。 – wenus