繁体   English   中英

Laravel + MySQL-存储雄辩的命名空间

[英]Laravel + MySQL - Storing Eloquent namespaces

我得到的这个项目绝对没有文档,也没有开发人员联系。 我在数据库转储中注意到,它们正在将Eloquent模型的PHP命名空间存储在几个表中。 例如,一个地址表具有一个名为“ object_type”的字符串列,其值始终为“ App \\ Entities \\ Client”。 我在整个项目中搜索了将使用此值的PHP代码。 希望能给我我的目的的见解。 毫不奇怪,该项目从未使用此值。 我只是看到在插入数据库时​​对这些值进行硬编码。

我的问题是 ,这是某种数据库和/或ORM建模设计实践吗? 如果是这样,您能解释一下如何在简单的实际意义上使用它吗?

也许这是开发人员所拥有的某个概念,但从未演变。 这是一个有趣的想法,但是,通过MySQL在字符串条件条件下加入的想法听起来像是折磨。

听起来像Laravel 多态关系

自定义多态类型。
默认情况下,Laravel将使用完全限定的类名来存储相关模型的类型。

而且,是的,这是一种有效的建模技术,尽管纯粹主义者正确地认为该技术滥用了正常形式。

我不确定开发人员在想什么。

但是想象一下我们在一个有话题的论坛中,并对每个话题进行回复。 我们可能想要一个“ 收藏夹”表,可以在其中保存回复和线索。

一种方法是在收藏夹表中有一列称为“ object_type”(只是使用与您的情况相同的术语),然后当我们雄辩地将对象保存到数据库中时,可以使用:

$favourite->object_type = get_class($thread); //or get_class($reply) in case we want a reply
$favourite->save(); 

这种方法会将那个类的名称空间保存到数据库中。 但是,当我们从数据库中获取时,laravel会识别出它。

希望这次感冒能有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM