forms - symfony 是否有一个内置的方法来将受污染的值与原始值进行比较?

标签 forms symfony1 doctrine

我正在使用 symfony 1.4 和 Doctrine。我构建了一个表单,该表单使用具有 Versionable 行为的表。正如预期的那样,每次提交和保存表单时,Versionable 都会创建该行的新版本。我的问题是,如果提交的实际值与通过编辑操作放入表单的原始值没有任何不同,我想阻止它这样做。

我知道我可以用 javascript 相对容易地做到这一点。我只是好奇 symfony 或 Doctrine 是否已经有这个功能,如果有的话,它是如何使用的。这似乎是 symfony 有一个方法,可以在 $form->save() 之前检查。叫做。我是在做梦还是遗漏了一些明显的东西?

最佳答案

save() 的评论Doctrine_Record 的方法是

/**
 * applies the changes made to this object into database
 * this method is smart enough to know if any changes are made
 * and whether to use INSERT or UPDATE statement
 *
 * this method also saves the related components
 *
 * @param Doctrine_Connection $conn     optional connection parameter
 * @throws Exception                    if record is not valid and validation is active
 * @return void
 */

所以首先,你应该检查它是否已经不起作用。
如果没有,Doctrine_Record 有一个 isModified() 方法你可以使用。如果bind()表单对象的方法修改表单中的对象,该对象首先应包含默认值,然后此方法应返回true。

关于forms - symfony 是否有一个内置的方法来将受污染的值与原始值进行比较?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5638658/

相关文章:

php - 如何 ?表单发布到多个位置

PHP 数据访问设计模式以补充 ORM

php - HTML 表单中的多个 PHP 函数处理程序?

javascript - 使用一个按钮提交表单,一个按钮使用 html 脚本发送到 emailmeform,另一个按钮发送到我的内部数据库

javascript - 如何使用 Javascript 更改下拉组合框值

php - 上传图像(JPEG)时有没有办法检查 DPI?

php - 生产中的 Symfony 日志记录忽略日志级别

php - 生产时 symfony 错误 500 而不是 404

php - 自动完成城市列表查询需要太多时间来加载巨大的城市表

php - 你是否必须在 symfony 中注册你的自定义验证器