我在Symfony2中很新,我对表单类型有问题。
我在数据库中有"消息"表,每条消息都有一个ID,消息和所有者。
然后,我必须在表单中显示这些消息。所以我这样做:
->add('shortComment', 'text', array(
'label' => 'Short Message',
'data' => $this->_predefinedMessage->getShortComment()))
所以,对我来说的问题是当我想在以下情况下禁用此文本框时:
owner != currentUser
我不知道该怎么说。我将感谢任何帮助。
多谢。
一种解决方案是将$disabled字段发送到表单中,但在控制器中对其进行初始化:
$disabled = $owner == $currentUser ? false : true;
$form = $this->createForm(new YourFormType($disabled), $messageEntity);
在表单类型中.php
class YourFormType extends AbstractType
{
protected $disabled;
public function __construct($disabled){
$this->disabled = $disabled;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('shortComment', 'text', array(
'label' => 'Short Message',
'disabled' => $this->disabled
));
}
}
我希望这对你有用。