是否有一种全局方法可以在不修改控制器和视图的情况下签入任何 .tpl 文件以查看篮子是否为空。这并不总是有效:
$cartItems = $this->cart->countProducts();
if ($cartItems < 0) {
print "Your cart is empty"
}
它似乎在登录时工作,有时作为客人?
更好的解决方案就是打电话
if ( ! $this->cart->hasProducts()) {
print "Your cart is empty";
}
它要快得多,并且直接引用购物车中的产品数量。
该方法$this->cart->countProducts()
不计算购物车内的产品,但计算购物车内的总产品件数。因此,它将所有产品加载到购物车中,并在循环中添加每个产品的数量。因此它更慢 - 不多,您甚至可能没有注意到差异 - 但它有点慢(购物车中的产品越多,由于循环越慢)。
$cart_contents = $this->cart->countProducts();
if ($cart_contents === 0) {
print "Your cart is empty"
}