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']
我正在使用 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']