按照此答案中的建议,我的应用程序当前使用构造函数将数据传递到表单类型。但是,Symfony2.8升级指南建议不要将类型实例传递给createForm
函数:
将类型实例传递给Form :: add(),FormBuilder :: add()和FormFactory :: create
*()方法已过时,在Symfony 3.0中不再受支持。而是传递类型的标准类名。Before: $form = $this->createForm(new MyType()); After: $form = $this->createForm(MyType::class);
看来我无法使用完全合格的类名传递数据,还有其他选择吗?
这也破坏了我们的某些形式。我通过将自定义数据通过选项解析器传递来修复了该问题。
在您的表单中输入:
public function buildForm(FormBuilderInterface $builder, array $options)
{
$this->traitChoices = $options['trait_choices'];
$builder
->add('name', TextType::class, ['label' => 'L_PROFILE_EDIT_NAME', 'required' => false])
...
->add('figure_type', ChoiceType::class, [
'label' => 'L_PROFILE_EDIT_FIGURETYPE',
'mapped' => false,
'choices' => $this->traitChoices['figure_type']
])
...
;
}
/**
* {@inheritdoc}
*/
public function configureOptions(OptionsResolver $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Foo\BarBundle\Entity\Profile',
'trait_choices' => null,
));
}
然后,当您在控制器中创建表单时,将其作为选项而不是在构造函数中传递:
$form = $this->createForm(ProfileEditType::class, $profile, array(
'action' => $this->generateUrl('profile_update'),
'method' => 'PUT',
'trait_choices' => $traitChoices,
));
我目前有一个PHP应用程序,它使用静态数据加密将敏感信息存储到数据库中,我稍后可以解密该数据库以在我的应用程序中使用。 这是我正在使用的当前代码。我知道…我知道…它一点都不安全,但它对我使用它的目的来说很好。我没有存储信用卡号码、社会保险号码或类似的东西。主要是姓名和地址。 我遇到的问题是我刚刚从PHP 5.5升级到PHP 7.1。现在在PHP 7.1中,我的加密/解密函数抛出大量警告,指出以下函
问题内容: 我正在尝试将数据发送到我的PHP脚本来处理一些东西并生成一些东西。 在我的PHP文件中,我尝试检索专辑名称。虽然当我验证它时,我创建了一个警报以显示什么都没收到,但是我尝试通过 虽然会说undefined:/ 问题答案: 您正在发送POST AJAX请求,因此请在您的服务器上使用来获取值。我也建议您这样编写请求,以确保正确的编码: 或简称为: 如果您想使用GET请求: 或简称为: 现在
问题内容: 我正在尝试使用Maven释放一个库并执行站点部署来sourceforge(我首先创建了一个交互式shell)。该发布由Jenkins作业完成(使用Jenkins的Maven发布插件)。 我试过了: 和 但两次工作都挂在site:第一个模块的部署: 当我停止工作时,将在最后打印以下内容: 这可能意味着$ {username}尚未解析。 如何解析$ {username}? 编辑: 请注意以
问题内容: 我对Java Web Start的状态感到困惑。在Oracle的支持路线图中,我们可以阅读以下内容: 部署技术支持 由Java插件和Web Start技术组成的Web部署技术具有较短的支持生命周期。对于通过Java SE 8进行的主要发行,Oracle为这些技术提供了五(5)年的高级支持。扩展支持不适用于部署堆栈,并且不适用于Java SE 9以外的支持。有关详细信息,请参见Oracl
本文向大家介绍SqlServer高版本数据备份还原到低版本,包括了SqlServer高版本数据备份还原到低版本的使用技巧和注意事项,需要的朋友参考一下 最近遇见一个问题: 想要将Sqlserver高版本备份的数据还原到低版本SqlServer上去,但是这在SqlServer中是没法直接还原数据库的,所以经过一系列的请教总结出来一下可用方法。 首先、你得在电脑上装有你将要操作的高版本以及低版本的
问题内容: 网页中Java Applets的一个众所周知的问题是,浏览器会忽略applet标记的z-index而不是页面中的其他组件。无论您如何在页面中定位元素和z- index元素,小程序都将在所有内容之上吸引自己。 有一种解决方法,称为iframe垫片,如此处所述:http : //www.oratransplant.nl/2007/10/26/using-iframe-shim-to-par