Проблема здесь в вашем конструкторе.На самом деле вы не вызываете «конструктор», который вы определили, но родительский конструктор выполняется.Это потому, что вы пропустили одно подчеркивание, оно должно быть __construct
.
Однако не стоит делать это так.Прежде всего, вы должны вызвать родительский конструктор, и, кроме того, такой пользовательский конструктор может вызвать проблемы в некоторых сценариях.
Гораздо лучше добавить метод следующим образом:
public static function restoreCart($oldCart)
{
$cart = new static();
if ($oldCart) {
$cart->items = $oldCart->items;
$cart->totalQty= $oldCart->totalQty;
$cart->totalPrice = $oldCart->totalPrice;
}
return $cart;
}
, а затем в вашем контроллере вместо:
$cart = new Cart($oldCart);
вы можете использовать:
$cart = Cart::restoreCart($oldCart);