Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >Symfony2表单防止更改实体的字段

Symfony2表单防止更改实体的字段
EN

Stack Overflow用户
提问于 2016-11-25 01:34:17
回答 3查看 347关注 0票数 0

我正在寻找一种将实体绑定到表单的方法,但是我需要一个特定的字段来映射(显示),而不是由提交表单的用户修改。

到目前为止,我查到的是:

  1. 使用禁用属性-它没有提交,实体的字段设置为null
  2. 使用HTML只读属性-它仍然可以通过操作HTML修改
  3. 使用read_only字段选项-与上面相同

我的字段是一个复选框,但是我更喜欢这类字段的通用解决方案,因为将来我会有更多的这样的字段。

我也想避免额外的查询。

有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2016-11-25 01:50:50

第一、第三种解决方案不是很好。

不久前我也有过同样的问题。这就是我为解决这个问题所做的

我使用了第二个解决方案,并且由于您在应用程序中有了实体,所以您可以简单地通过操作HTML来覆盖用户更改的任何值(whitch是一个应该处理的风险)。

或者,您可以绘制一个未映射的HTML复选框(带有随机id和名称),并且它不会映射到您的实体。

票数 1
EN

Stack Overflow用户

发布于 2016-11-25 02:44:11

我想我已经找到了解决这个问题的正确办法。它不是很灵活,但是将它转换为扩展应该会使它相当容易处理。我刚才创建的基本版本可以找到这里。一个小小的解释:

  1. 将选项mapped设置为false的字段
  2. 创建事件处理程序函数(setUnmappedField)
  3. 将EventListener附加到PRE_SET_DATA和提交事件。

PRE_SET_DATA确保字段在最初呈现表单时具有正确的值。SUBMIT确保将字段的值恢复到初始值,即使用户在提交表单之前对其进行了更改。

对于UI/UX,禁用和只读属性都在这里,如果没有这些属性,它也能工作。

如果需要的话,可以随意使用它来构建表单扩展。一旦需要,我可能会构建一个扩展,以使其稍后更加灵活。

@编辑

我刚刚意识到这可以做的更容易-让字段映射!已更新要点在这里。不需要PRE_SET_DATA侦听器和mapped=false

票数 1
EN

Stack Overflow用户

发布于 2016-11-25 02:05:08

我建议你做一个1和2的组合。样本见下文

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 ->add('trainings', 'entity', array(
                'label'=> 'Upcoming training(s)',
                'choice_label' => 'CompleteTitle',
                'multiple' => 'true',
                'expanded' => 'true',
                'by_reference'=>false,
                'class' => 'TrainingBundle:Trainings' ,
                'query_builder' => function (EntityRepository $er) use ($options) {
                    return $er->getTrainingByParentId($options['parent_id']);
                },
            )
        )
        ->add('PastTrainings', 'entity', array(
                'label'=> 'Past trainings',
                'choice_label' => 'CompleteTitle',
                'multiple' => 'true','expanded' => 'false',
                'disabled' => 'true',
                'class' => 'TrainingBundle:Training' ,'mapped'=>false,
                'query_builder' => function (EntityRepository $er) use ($options) {
                    return $er->getTrainingByParentId($options['parent_id']);
                },


            )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40801680

复制
相关文章
表单提交原理_防止表单重复提交
<form>标签的属性enctype设置以何种编码方式提交表单数据。可选的值有三个:
全栈程序员站长
2022/11/08
5.5K0
防止表单重复提交
写的真的很好 https://blog.csdn.net/chenzao666/article/details/81222855
周杰伦本人
2022/10/25
1.5K0
MongoDB更改字段类型
1 Double 浮点型  2 String UTF-8字符串都可表示为字符串类型的数据  3 Object 对象,嵌套另外的文档  4 Array 值的集合或者列表可以表示成数组  5 Binary data 二进制  7 Object id 对象id是文档的12字节的唯一 ID 系统默认会自动生成  8 Boolean 布尔类型有两个值TRUE和FALSE  9 Date 日期类型存储的是从标准纪元开始的毫秒数。不存储时区  10 Null 用于表示空值或者不存在的字段  11 Regular expression 采用js 的正则表达式语法  13 JavaScript code 可以存放Javasript 代码  14 Symbol 符号  15 JavaScript code with scope  16 32-bit integer 32位整数类型  17 Timestamp 特殊语义的时间戳数据类型  18 64-bit integer 64位整数类型
周小董
2019/03/25
7.1K0
MongoDB更改字段类型
如何防止表单重复提交
在看Java Web 深入分析时, 看到表单重复提交问题一节, 如下描述如何解决问题:
望天
2018/08/02
3.1K0
如何防止表单重复提交
实战之防止表单重复提交
对于防止重复提交,最简单也最不安全的做法相信大家也都经历过,前端在一个请求发送后立即禁用掉按钮,这里咱们来讨论一下后端对防止重复提交的处理方式。 主要针对非分布式环境下防止重复提交与分布式环境下的防止重复提交。一般分布式环境下也可以通过网关路由的方式将同一个用户的请求路由到一个实例上处理。
山行AI
2019/06/28
2.9K0
防止Web表单重复提交的方法总结
在Web开发中,对于处理表单重复提交是经常要面对的事情。那么,存在哪些场景会导致表单重复提交呢?表单重复提交会带来什么问题?有哪些方法可以避免表单重复提交?
编程随笔
2019/09/11
4.8K0
防止Web表单重复提交的方法总结
SpringMVC token 防止表单重复提交
一、定义注解 Token.java @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Token { boolean save() default false; boolean remove() default false; } 二、定义token 过滤器 TokenInterceptor.java package com.bra.common.web; import com.
week
2018/08/27
1.4K0
JavaWeb防止表单重复提交的几种方式
(4)、ajax提交加锁 采用ajax方式提交表单时,设置一个布尔变量(true/false),当然其他类型变量也可以。初始时为true可以提交,在前端向服务器发出请求后,服务端响应结果没有回来之前将该值置为false,正常响应时再置为true。
全栈程序员站长
2022/08/04
2.3K0
PHP过滤表单字段
从post来的进行addslashes后就可存入数据库了,取出后直接echo即可 普通的文本: 1.htmlspecialchars接着addslashes存入数据库,取出后直接echo即可。 2.addslashes存入数据库,取出后htmlspecialchars输出。 说明: addslashes仅仅是为了让原来的字符正确地进入数据库。 htmlspecialchars是吧html标签转化掉。
黄啊码
2020/05/29
3.1K0
防止表单重复提交的思路和方法
作为一个软件开发者,绝不能奢望你的用户会规规矩矩地使用你的软件,他们一般都是缺乏耐心,“胡作非为”的。比如当他点击提交表单时,服务器处理比较慢, 页面上没有任何反应,他会迫不及待地再点击几次,这样就会产生重复数据或者报错,或者他会刷新一下再次提交。所以,你必须保证你的软件足够地健壮,尽可能地考虑各种用例,增加限制,抵御使用者的摧残。 对于如何处理重复提交,一般教科书上都有点明,不外乎是在js代码中增加限制或者通过session来处理。关于js代码限制,就是当用户第一次提交后,将提交按钮设置为“disable
java达人
2018/01/31
1.9K0
HTML防止input回车提交表单
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
奋飛
2019/08/15
3.9K0
防止用户将表单重复提交的方法 原
表单重复提交是在多用户Web应用中最常见、带来很多麻烦的一个问题。有很多的应用场景都会遇到重复提交问题,比如:
wuweixiang
2018/08/14
2K0
MYSQL 生产环境字段更改的failed的问题
早上看到微信一个银行的同学问了小问题,希望他不要背锅,具体问题是MYSQL 一个50G的表要更改字段,将一个字段从varchar(3) 改成varchar(6). MYSQL 5.7 官版。因为根据官方和在测试系统测试的结果来看,不应该是缓慢的,应该是很快完成的。
AustinDatabases
2020/06/05
1.9K0
EXTJS防止表单中回车触发提交
版本 7.0 modern toolkit 现象 在formpanel下的字段中使用回车时会自动触发form标签提交,导致跳转 源码 Ext.form.Panel getTemplate: function() { var template = this.callParent(); // 为实现标准的表单提交,加入了一个隐藏的input标签,类型为submit // 浏览器检查到此form字段回车会自动触发submit对象的click事件提交 template.push({
路过君
2020/08/24
1.5K0
EXTJS防止表单中回车触发提交
oracle查看表字段类型_oracle更改表字段类型
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/10/03
1.1K0
MySQL online DDL 更改Varchar的字段长度
修改Varchar 的大小的时候。不用锁表,就可以进行操作DDL。这个还得具体查看版本,还有具体情况。下来我们来看一下INnoDB中的Online DDL各个操作请求。
袁新栋-jeff.yuan
2020/08/26
6.4K0
MySQL online  DDL 更改Varchar的字段长度
更改Linux默认端口,防止被恶意扫描
直接上代码: #!/bin/bash rm $0 echo "请输入新的SSH端口:" read ssh echo "您输入的端口为$ssh,确认请输入yes,否则回车退出!" read statu if [[ $statu == yes ]] then echo else echo "欢迎下次使用!" exit 0; fi sed -i "s/#Port 22/Port $ss/g" /etc/ssh/sshd_config sed -i "s/Port 22/Port $ss
刺_猬
2018/06/21
2.5K0
antd表单设置数组字段
在使用React+ant design进行开发时通常使用Form组件,但是很多时候我们某一个字段是二维数组。例如这样:
用户6256742
2022/07/17
2.4K0
antd表单设置数组字段
怎样更改wordpress登陆 URL防止恶意注册
WP 默认的登陆 URL 是 wp-login.php或wp-admin.php,许多spamer会根据这些footprint来收集可注册的wordpress站点,然后你的站内就多出许多垃圾评论。如果你不想成为其中的一员,那就改改登录url吧
ytkah
2022/03/14
1.4K0
点击加载更多

相似问题

实体字段表单Symfony2

10

非实体字段的Symfony2表单

11

表单中的Symfony2实体字段

12

动态表单Symfony2更新实体字段

12

Symfony2 -信条实体数组字段和表单

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文