我需要证明我的表格。我的表格有两个集合但我不能有效... 你知道我怎么做到的吗?
CardEntryType:
namespace Dim\RestaurantBundle\Form\Type;
class CardEntryType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('cardEntryContent', 'collection', array(
'type' => 'text',
'prototype' => true,
'allow_add' => true,
'allow_delete' => true,
'by_reference' => false,
'options' => array(
'required' => false,
'attr' => array(
'class' => 'text',
'placeholder' => 'Nom de l\'entrée...',
'pattern' => '.{0,55}'),
),
))
->add('cardEntryPrice', 'collection', array(
'type' => 'text',
'allow_add' => true,
'prototype' => true,
'options' => array(
'required' => false,
'attr' => array(
'class' => 'text',
'placeholder' => 'Prix de l\'entrée...',
'pattern' => '.{0,10}'),
),
));
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'Dim\RestaurantBundle\Entity\TCardEntry',
);
}
public function getName()
{
return 'cardEntry';
}
}
实体的模型:
namespace Dim\RestaurantBundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Symfony\Component\Validator\Constraints as Assert;
use Doctrine\Common\Collections\ArrayCollection;
/**
* TCardEntry
*
* @ORM\Table(name="t_card_entry")
* @ORM\Entity
*/
class TCardEntry
{
/**
* @var integer
*
* @ORM\Column(name="card_entry_id", type="integer", nullable=false)
* @ORM\Id
* @ORM\GeneratedValue(strategy="IDENTITY")
*/
private $cardEntryId;
/**
* @var string
*
* @Assert\Length(
* min = "0",
* max = "55",
* minMessage = "Votre nom ne peut faire moins de {{ limit }} caractères.",
* maxMessage = "Votre nom ne peut faire plus de {{ limit }} caractères."
* )
*
* @ORM\Column(name="card_entry_content", type="text", nullable=false)
*/
private $cardEntryContent;
/**
* @var string
*
* @Assert\Length(
* min = "0",
* max = "10",
* minMessage = "Votre nom ne peut faire moins de {{ limit }} caractères.",
* maxMessage = "Votre nom ne peut faire plus de {{ limit }} caractères."
* )
*
* @ORM\Column(name="card_entry_price", type="string", length=10, nullable=false)
*/
private $cardEntryPrice;
/**
* Get cardEntryId
*
* @return integer
*/
public function getCardEntryId()
{
return $this->cardEntryId;
}
/**
* Set cardEntryContent
*
* @param string $cardEntryContent
* @return TCardEntry
*/
public function setCardEntryContent($cardEntryContent)
{
$this->cardEntryContent = $cardEntryContent;
return $this;
}
/**
* Get cardEntryContent
*
* @return string
*/
public function getCardEntryContent()
{
return $this->cardEntryContent;
}
/**
* Set cardEntryPrice
*
* @param string $cardEntryPrice
* @return TCardEntry
*/
public function setCardEntryPrice($cardEntryPrice)
{
$this->cardEntryPrice = $cardEntryPrice;
return $this;
}
/**
* Get cardEntryPrice
*
* @return string
*/
public function getCardEntryPrice()
{
return $this->cardEntryPrice;
}
}
我的控制器:
namespace Dim\RestaurantBundle\Controller;
class AdministrationController extends Controller
{
public function indexAction()
{
return $this->render('DimRestaurantBundle:Administration/Home:index.html.twig');
}
public function cardEntryAction(Request $request)
{
$TCardEntry = new TCardEntry();
$form = $this->createForm(new CardEntryType(), $TCardEntry);
if($request->isMethod('POST'))
{
$form->bind($request);
if($form->isValid())
{
die('form valid');
}
}
return $this->render('DimRestaurantBundle:Administration/CardEntry:index.html.twig', array('form' => $form->createView()));
}
}
当我提交表单时,我总是有同样的错误:
“string”,“array”类型的预期参数
我很困惑......你有个主意吗?
非常感谢!
答案 0 :(得分:2)
该错误是Symfony 2.5中的一个错误。
bug#11117 [Validator]修复数组表示法 PropertyPath :: append()(jakzal)
更改日志:http://symfony.com/blog/symfony-2-5-1-released
要解决此问题,我已将Symfony 2.5更新为Symfony 2.5.1。