我是symfony 3的新手,我想了解如何根据找到的结果从表中获取值。 让我解释一下:
根据下面的低音图,每个“产品”都有一个“poids”(nom)和一个“valeur”(valeur)
查看bdd:
我想在我的购物篮视图中根据当然的数量显示重量的总值。 例如,我有一个2kg的产品和另一个0.300kg的产品,它必须产生重量表中2.3kg的值。 我不能执行这个“功能”。 这是我的PanierController。
class PanierController extends Controller
{
public function supprimerAction(SessionInterface $session, $id)
{
$panier = $session->get('panier');
if (array_key_exists($id, $panier))
{
unset($panier[$id]);
$session->set('panier', $panier);
$this->addFlash('success', 'Article supprimé avec succès !');
}
return $this->redirect($this->generateUrl('panier'));
}
public function ajouterAction(SessionInterface $session, Request $request, $id)
{
if (!$session->has('panier')) {
$session->set('panier', array());
}
$panier = $session->get('panier');
if (array_key_exists($id, $panier)) {
if ($request->query->get('qte') != null) {
$panier[$id] = $request->query->get('qte');
}
$this->addFlash('success', 'Quantité modifié avec succès !');
} else {
if ($request->query->get('qte') != null) {
$panier[$id] = $request->query->get('qte');
} else {
$panier[$id] = 1;
}
$this->addFlash('success', 'Article ajouté avec succès !');
}
$session->set('panier', $panier);
return $this->redirect($this->generateUrl('panier'));
}
public function panierAction(SessionInterface $session)
{
if (!$session->has('panier')) {
$session->set('panier', array());
}
$em = $this->getDoctrine()->getManager();
$produits = $em->getRepository('EcommerceBundle:Produits')->findArray(array_keys($session->get('panier')));
return $this->render('EcommerceBundle:Default:panier/layout/panier.html.twig', array('produits' => $produits, 'panier' => $session->get('panier')));
}
public function livraisonAction()
{
// servira pour l'adresse de livraison
return $this->render('EcommerceBundle:Default:panier/layout/livraison.html.twig');
}
public function validationAction()
{
return $this->render('EcommerceBundle:Default:panier/layout/validation.html.twig');
}
}
如果您需要更多信息,请告诉我们。
答案 0 :(得分:0)
@JasonRoman,
那就是说? 例如,要在Shopping Cart视图中显示产品,我使用Shopping CartController中的ProductsRepository:
public function panierAction(SessionInterface $session)
{
if (!$session->has('panier')) {
$session->set('panier', array());
}
$em = $this->getDoctrine()->getManager();
$produits = $em->getRepository('EcommerceBundle:Produits')->findArray(array_keys($session->get('panier')));
return $this->render('EcommerceBundle:Default:panier/layout/panier.html.twig', array('produits' => $produits, 'panier' => $session->get('panier')));
}
ProductsRepository:
class ProduitsRepository extends EntityRepository
{
public function findArray($array)
{
$qb = $this->createQueryBuilder('u')
->select('u')
->where('u.id IN (:array)')
->setParameter('array', $array);
return $qb->getQuery()->getResult();
}
}
结果在购物车视图中是正确的。 在篮子视图中,如果我让他告诉我篮子里的总重量,我会这样做:
{% Extends "::layout/layout.html.twig"%}
{% Set totalHT = 0%}
{% Set livraisonHT = 0%}
{% Block body%}
{% Set livraisonHT = livraisonHT + (panier[produit.id] * produit.poids.nom)%}
livraisonHT给了我总重量
另一方面,我不知道要写什么函数,以便它显示相应的值。 目前我在我的篮子里: 一种产品为2kg,另一种产品为0.3kg
{% Set livraisonHT = livraisonHT + (panier[produit.id] * product.poids.non)%}
答案 1 :(得分:0)
我想我已经把手指放在了什么东西上, 在我的购物篮视图中,如果我进行转储(产品),我会得到:
array:1 [▼
0 => Produits {#546 ▼
-id: 5
-image: Media {#445 ▶}
-gamme: Gamme {#396 ▶}
-marque: Marque {#467 ▶}
-tva: Tva {#563 ▼
+__isInitialized__: true
-id: 11
-multiplicate: 0.83333333333334
-nom: "TVA 20 %"
-valeur: 20.0
…2
}
-poids: Poids {#670 ▼
+__isInitialized__: false
-id: 209
-nom: null
-valeur: null
…2
}
-categorie: Categories {#684 ▶}
-nom: "Phantom 4 Standard"
-resume: "le résumé"
-description: "La description longue"
-details: "details à voir"
-prix: 1000.0
-disponible: true
}
]
在“重量”中,名称和值是零?