0

我目前正在试验 Eloquent ORM,并且正在研究在应用程序中动态建模对象的可能性。

假设我有一个形状模型。

形状可以是正方形、圆形、三角形、矩形、五边形、六边形等...

所有形状都有相似之处,但有些形状具有不同的属性。

我想做的是使mysql 数据库表更通用,例如创建一个名为shapes 的表。

形状表:

id:integer
name:string
width:integer
height:integer
radius:integer
sides:integer

外形型号:

$rulesCircle = ['sides'=>'required', 'radius'=>'required']

$rulesSquare = ['height'=>'required', 'sides' => 'required']

$rulesRectangle = ['height'=>'required', 'width' => 'required', sides' => 'required']

现在让我们假设会有一个表单要求用户选择和指定形状的尺寸。

假设用户选择圆形,我们需要使用正确的验证规则。

这听起来像是一个愚蠢的例子,但我只是出于实验原因而研究这个。

这样做的正确方法是:

  1. 使用具有不同验证规则(if / else 语句)的形状模型来选择正确的验证规则
  2. 对所有通用形状使用形状模型,这些形状包含所有人共有的特征(例如名称和边)和正方形/圆形/矩形模型,它们扩展了形状模型但都引用了相同的形状 mysql 表
  3. 其他

以上可能吗?有没有更好的方法来解决上述问题?是否有最佳实践方法可以做到这一点?是否有针对上述要求的特定术语?

4

0 回答 0