0
商品の数量が1の場合は、インデックスページに商品を表示しません。商品の数量は表の数量に格納されます。テーブル数量は商品へのリンクです(ManyToOne)。Doctrine Query Builderを使用して結合クエリを実行する
これは私が行ったことです。
public function product($id)
{
$query = $this->createQueryBuilder('e')
->leftJoin('e.quantity', 'r')
->where('r.quantity = :id')
->setParameter('id', $id)
->getQuery();
return $query->getResult();
}
数量
/**
* @var integer
*
* @ORM\Column(name="id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;
/**
* @ORM\ManyToOne(targetEntity="Post", cascade={"remove"})
* @ORM\JoinColumn(name="product_id", referencedColumnName="id")
*/
protected $desk2;
/**
* @var integer
* @ORM\Column(name="quantity", type="integer", nullable=true)
*/
protected $quantity;
商品
/**
* @var integer
*
* @ORM\Column(name="id", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="AUTO")
*/
private $id;
/**
* @var string
*
* @ORM\Column(name="telephone", type="string", length=30)
*/
private $telephone;
/**
* @var string
*
* @ORM\Column(name="name", type="string", length=125)
*/
private $name;
/**
* @var string
*
* @ORM\Column(name="description", type="text" , length=125)
*/
private $description;
インデックス
EDIT:
デフォルト:index.html.twig
{% extends "::base.html.twig" %}
{% block newadvert %}
<div class="span4 offset1">
</div>
{{ render(controller('FLYBookingsBundle:Post:indexv')) }}
{% endblock newadvert %}
コントローラ:これは量> 1(または任意の量の製品を返され
public function indexAction()
{
return $this->render('FLYPlatformBundle:Default:index.html.twig');
}
ありがとうございます。私はあなたが提案したものを試しましたが、私はこのエラーがあります: 'テンプレートのレンダリング中に例外がスローされました("コントローラー "FLY \ BookingsBundle \ Controller \ PostController :: indexvAction()"は、 $ quantityLimit "(デフォルト値がないため、またはオプションの後にオプションの引数がないため)。")in FLYPlatformBundle:デフォルト:index.html.twig at 5行目。 index.html.twig – Sirius
quantityLimitパラメータをindexvActionに渡す必要があります。クエリに問題はありません。経路を呼び出す方法だけです。 http://symfony.com/doc/current/book/routing.html#routing-with-placeholdersを参照して、コントローラメソッドを正しく呼び出していることを確認してください。例えば。 http://yoursite.com/yourproductroute/1 - またはそのようなもの – Richard
私はindexvActionに既にquantityLimitパラメータを渡しています。ページindexv.html.twigは、index.html.twigページに表示されます。そして、私は問題がこの行から来ていると思います: '{{render(controller)} ');}}' – Sirius