我目前正在努力处理表单和被保留的实体,因为我无法从表单中的相关实体访问属性。
form.get('value') // access current entity
form.get('value').relatedEntity // (access the related entity)
form.get('value').relatedEntity.property // is not working
我想更详细地解释我的整个场景,因为我认为我目前的解决方案不是最好的,也许我可以避免设计我的表单有点不同的整个问题。
我基本上遵循了如何在一个表格https://groups.google.com/forum/?fromgroups#!topic/symfony2/DjwwzOfUIuQ%5B1-25%5D
中提交多个实体的说明首先,这是我的实体:
//@ORM\Entity
class Game {
//@ORM\Column(name="scoreT1", type="integer", nullable=true)
private $scoreT1;
//@ORM\Column(name="scoreT2", type="integer", nullable=true)
private $scoreT2;
//@ORM\OneToOne(targetEntity="Bet", mappedBy="game")
private $bet;
}
//@ORM\Entity
class Bet {
//@ORM\Column(name="scoreT1", type="integer", nullable=true)
private $scoreT1;
//@ORM\Column(name="scoreT2", type="integer", nullable=true)
private $scoreT2;
// @ORM\OneToOne(targetEntity="Game", inversedBy="bet")
private game;
}
这些是我的表格:
class GamesListType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('bets', 'collection',array(
'required' => false,
'allow_add' => false,
'type' => new BetType()
))
;
}
public function getDefaultOptions(array $options)
{
return array('data_class' => 'Strego\TippBundle\Form\Model\BetCollection');
}
}
class BetType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('scoreT1')
->add('scoreT2');
;
}
public function getDefaultOptions(array $options)
{
return array('data_class' => 'Strego\TippBundle\Entity\Bet');
}
}
为了从GamesListForm中的“mainEntity”获得赌注,我创建了一个专用的Collectionclass:
use Doctrine\Common\Collections\ArrayCollection;
class BetCollection extends ArrayCollection {
public function getBets(){
return $this;//->toArray();
}
}
这更像是我正在努力的环境。我的要求是以某种方式显示游戏列表和投注此游戏的表格。我目前试图像这样实现它:
{% for bet in form.bets %}
bet.get('value').game.scoreT1 // <-- this is my current issue
<div class="row">{{ form_widget(item) }}</div>
{% endfor %}
我正在解释整个场景,因为我想要一些输入如何实现游戏列表及其旁边的表单。另一个想法是有3个表格:GamesList / Game / Bet,但不知怎的,我遇到了一个由symfony停止的无限循环。表格中有3层是否存在普遍问题?
答案 0 :(得分:0)
我明白了。问题出在其他地方。 可以通过以下方式轻松访问相关实体及其属性:
form.get('value').relatedEntity.property