已经使用了你能想象到的尽可能多的 ORM。目前,我对 RedBean PHP 爱不释手。我们开始吧......经过几个小时的研究,我怀疑解决这个非常基本的问题的更好方法是什么(在这种情况下,最好的方法意味着更适合 RedBean 的易用性理念的方法):
限制对类的某些属性的访问是很常见的,这样我们就可以防止某些类型的错误数据操作。这通常是通过充分利用 getter 和 setter 来实现的。但就 RedBean 的了解而言,原生类中没有正式的 setter,只有一些可以更改和持久化在数据库中的公共属性。
我想做的是保护一些属性不被手动更改,这样我就可以避免其他程序员做出任何奇怪的事情,比如:
$beam->insertion_date = 'yesterday';
R::store($beam);
显然,在插入行后该字段不应该更改,但我们不能相信没有人会这样做。有没有办法实现诸如将插入日期变成受保护的属性或以某种方式使其无法访问?
我有一种感觉,最好的方法是使用$beam->setMetadata()
并声明不应更改给定属性,但我不知道如何在 RedBean 中实现这一点,并且在官方手册中仍然找不到足够的信息。任何帮助表示赞赏。
谢谢阅读。