这是否可以像在 PEAR/QuickForm 中那样只用一(或两)行代码使整个表单成为只读的?
我有以下代码:
$form = $this->createFormBuilder($user)
->add('username', \Symfony\Component\Form\Extension\Core\Type\TextType::class, array('label' => 'Login: '))
->add('personal_name', \Symfony\Component\Form\Extension\Core\Type\TextType::class, array('label' => 'Imię i nazwisko: '))
(...)
我知道我可以将 "read_only"=> true
添加到每个“add”函数调用中,但是是否有单行代码?
我也尝试过像这样使用 AbstractType:
class Register extends AbstractType
{
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'validation_groups' => array('registration'),
'readonly' => true //I also tried read_only, read-only, read only but to no avail
));
}
上面的代码不起作用,尽管当我将 'readonly' => true
替换为 'disabled' => true
时,它...起作用了。但是我希望它是只读的。
我在这里想要完成的是,我想要一个 View ( Twig 模板、表单)来添加新实体、编辑现有实体和显示实体的详细信息(这是 readonly 有用的地方)。也许你有更好的主意?
我知道我可以用 Javascript 来做到这一点,但也许有一个 Symfony 的方式来做到这一点?
最佳答案
"read_only"在 Symfony 2.8 中被弃用,取而代之的是传递只读作为属性。请尝试以下操作:
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults([
'validation_groups' => ['registration'],
'attr' => ['readonly' => true],
]);
}
关于symfony - 在 Symfony 中使整个表单只读,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35483971/