Професионална програма
Loading...
+ Нов въпрос
r_panchev97 avatar r_panchev97 74 Точки

Problem with displaying products of current user.

Здравейте, опитвам се да принтирам всички добавени продукти от текущия юзър, но имам проблем. Нищо не се принтира. Ето функцията за листване на продукти в CartController-a. 

 

public function listCartAction()
{
    $cartProducts = $this->getDoctrine()->getRepository('AppBundle:CartProduct')->find($this->getUser());

    return $this->render('cart/cart.view.html.twig', array(
        'cartProducts' => $cartProducts
    ));
}

Ето и twig view-то:

{% extends 'base.html.twig' %}

{% block body %}
    <div style="text-align: center;">
        <h1>Products In My Cart</h1>
    </div>
    {% for cartProduct in cartProducts %}
        {{ cartProducts.product.name }}
    {% endfor %}
{% endblock %}

 

Тагове:
0
PHP Web 27/04/2017 17:32:43
djc_bg2015 avatar djc_bg2015 922 Точки

find() не търси ли само по id? или може да му се подаде цял обект?

Защо не пробваш с къстъм заявка в репозиторито?

0
r_panchev97 avatar r_panchev97 74 Точки

Не съм сигурен, че знам как точно става

0
djc_bg2015 avatar djc_bg2015 922 Точки

Я дай скрийншот на cart таблицата

0
indominus avatar indominus 10 Точки

find() метода наистина търси само по primary key на таблицата, най-често id.

За твоя случай, един от най-лесните варианти е да използваш findBy() ,като му подадеш директно user => $this->getUser() за аргументи.

1
r_panchev97 avatar r_panchev97 74 Точки

Пробвах по този начин и пак не става indecision 

 

public function listCartProductsAction()
{
    var_dump($cart = $this->getDoctrine()->getRepository('AppBundle:Cart')->findBy($this->getUser()));

    return $this->render('cart/cart.view.html.twig', array(
        'cart' => $cart
    ));
}
0
indominus avatar indominus 10 Точки

Е да, findBy() приема масив, като аргумент.

Тоест, ще стане ->findBy(array('user' => $this->getUser()));

3