自从升级到Symfony 2.7以来,在尝试序列化与给定组关联的联系人数组时,我似乎一直在"检测到循环引用"错误.它们是在多对多关联中设置的(一个组有很多联系人;一个联系人有很多组关联).
现在,我遵循指南使用序列化组按照2.7升级帖子,但似乎仍然得到错误.我的控制器代码目前如下:
$group = $this->getDoctrine()
->getRepository('TwbGroupsBundle:ContactGroup')
->find($id);
$groupContacts = $group->getContacts();
$encoder = new JsonEncoder();
$normalizer = new ObjectNormalizer();
$serializer = new Serializer(array($normalizer), array($encoder));
$json = $serializer->serialize($groupContacts, 'json', array(
'groups' => array('public')
));
Run Code Online (Sandbox Code Playgroud)
运行时$serializer->serialize(),我在1个循环引用后得到CircularReferenceException.到目前为止,我使用@Groups注释配置了我的Contact实体,如下所示:
/**
* Contact
*
* @ORM\Table(name="tblContacts")
* @ORM\Entity(repositoryClass="Twb\Bundle\ContactsBundle\Entity\Repository\ContactRepository")
*/
class Contact implements ContactInterface
{
/**
* @var string
*
* @ORM\Column(name="ContactName", type="string", length=50, nullable=true)
* @Groups({"public"})
*/
private $contactname;
/**
* @var integer
*
* @ORM\Column(name="ContactID", type="integer")
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
* …Run Code Online (Sandbox Code Playgroud) 我正在尝试设置一个简单的单页"立即购买"表单,其中包含多个产品列表和一个文本输入框,允许用户指定他们对每个产品的需求量,或指定"0"以不将产品添加到购物车.当然,如果有人的数量只有0,PayPal会返回"您输入的数量值无效.数量值必须是大于或等于1的整数." 是否有一个简单的解决办法让PayPal忽略提交数量为"0"的产品?我的表单基本上看起来像这样(像total_item_*这样的字段用于jquery计算脚本):
<form action="https://www.paypal.com/cgi-bin/webscr" method="post" id="frmCreateCheckboxRange">
<input type="hidden" name="cmd" value="_cart">
<input type="hidden" name="upload" value="1">
<input type="hidden" name="business" value="youremail@mail.com">
<input type="hidden" name="currency_code" value="US">
<fieldset>
<table width="500">
<!-- Product 1 -->
<tr>
<td align="center">
<input type="text" name="quantity_1" id="qty_item_1" value="0" size="2" />
<input type="hidden" name="item_name_1" value="Non-Driver Event Pit Passes (6/ 29 - 7/ 2)" />
<input type="hidden" name="amount_1" value="30.00" />
</td>
<td>Non-Driver Event Pit Passes (6/ 29 - 7/ 2)</a></td>
<td align="center" id="price_item_1">$30.00</td>
<td align="center" id="total_item_1">$0.00</td>
</tr>
<!-- Product 2 -->
<tr>
<td …Run Code Online (Sandbox Code Playgroud)