Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #59 da revista programar. Faz já o download aqui!

sEnte

função update

Mensagens Recomendadas

sEnte    0
sEnte

Ainda continuando com a mesma app....

No carrinho de compras o que queria fazer é o seguinte, na lista de produtos selecciona-se um produto e faz-se adicionar. Até aqui tudo bem, quando tento adicionar mais que um produto da mesma coisa deveria ser incrementado, mas não é.

atualmente é isto que tenho

<?php
 namespace Cart\Basket;

use Cart\Models\Product;
 use Cart\Support\Storage\Contracts\StorageInterface;
 use Cart\Basket\Exceptions\QuantityExceededException;

class Basket {
protected $storage;
protected $product;
public function __construct(StorageInterface $storage, Product $product) {
  $this->storage = $storage;
  $this->product = $product;
}

public function add(Product $product, $quantity) {
  if ($this->has($product)) {
	$quantity = $this->get($product)['quantity'] + $quantity;
  }
  $this->update($product, $quantity);
}

public function update(Product $product, $quantity) {
  if (!$this->product->find($product->id)->hasStock($quantity)) {
	throw new QuantityExceededException;
  }
  if ($quantity === 0) {
	$this->remove($product);
	return;
  }
  $this->storage->set($product->id, [
	'product_id' => (int) $product->id,
	'quantity' => (int) $quantity,
  ]);
}


"If It Ain't Broke, Break it and build something Cooler!" Unknown

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
HappyHippyHippo    1153
HappyHippyHippo

isso depende do funcionamento desta função :

         $this->storage->set($product->id, [
               'product_id' => (int) $product->id,
               'quantity' => (int) $quantity,
         ]);

lembra-te que nunca disseste que biblioteca éssa "Cart"


IRC : sim, é algo que ainda existe >> #p@p

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
sEnte    0
sEnte

à idea é ir à BD buscar os campos referentes à id e a quantidade

foi o nome que dei quando comecei.

{
   "require": {
    "slim/slim": "^3.0",
    "slim/twig-view": "^2.1",
    "php-di/slim-bridge": "^1.0",
    "illuminate/database": "^5.2"
   },

   "autoload": {
  "psr-4": {
    "Cart\\": "app"
  }
   }
}

e estas são as libraries que estou a usar.

Editado por sEnte

"If It Ain't Broke, Break it and build something Cooler!" Unknown

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.