F3:有没有办法将数组转换为带有附加字段的对象?

F3: Is there a way to convert an array into an object with additional fields?

我正在使用 Fat Free PHP 来 return 使用连接的查询。因此,结果具有来自另一个 table 的额外字段。我希望能够将数组转换为对象(即 arrayToObjects),但我希望附加字段保持不变。我也希望 return 我的 class 的实例,而不是 stdClass。

我尝试将附加字段添加到 php 模型,但是当我将 mysql 结果传递到 arrayToObjects() 时它丢失了值。

这是可以实现的吗?

这是我不久前学到的一个简单但肮脏的技巧。

// Create an array
$array = range('a', 'z');

// Convert array to object
$object = json_decode(json_encode($array));

瞧!具有您希望它具有的所有值的对象。没什么好看的。

您可以向您的模型添加自定义 setter 和 getter 方法,这样它就可以加载和保存额外的 arrays/objects。这可能是您现在最简单的方法。 您也可以尝试使用内置关系支持的 F3 cortex orm。

我不是我最终解决方案的忠实粉丝,但我手动将值添加到数组中的对象。

例如:

object = new Object();
object->id = array['id']
object->name = array['name']