PHP   发布时间:2022-04-04  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了的Symfony 2.3实体布尔属性只允许一行为真大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

这应该很容易,但是我似乎找不到答案…
我正在尝试做的是创建页面捆绑;零件非常简单.我在数据库添加一个isHome列.基本上,我希望在主页上设置一个标志.显然,数据库中只有一行可以将该值设置为true,其余的必须为false.

现在让我们说,我不在乎所有记录是否为假,我最多只希望一个记录为真(尽管强行强制至少一个记录为真).

我最初想到的方法是在存储库中创建一个方法,如果当前页面对象将isHome值设置为true,则将所有isHome值设置为false,然后保存该记录.似乎是个好主意,但看来我不能/不应该从实体中调用存储库.

关于如何仅允许一条记录将isHome从实体设置为true的任何想法?

我正在将Symfony 2.3.1与MySQL数据库和doctrine2配合使用.

解决方法:

只需为您的实体添加PrePersist和Preupdate准则listener/subscriber.

当触发侦听器时,使用诸如findBy(array(‘isHome’=> truE))之类的东西,将isHome设置为true的其他实体查询到您的存储库中…

…然后使用isHome false更新所有找到的实体,在您持久/更新实体后,总只有一个留在家中.

大佬总结

以上是大佬教程为你收集整理的的Symfony 2.3实体布尔属性只允许一行为真全部内容,希望文章能够帮你解决的Symfony 2.3实体布尔属性只允许一行为真所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: